tl; dr
Alcune delle altre risposte sono corrette nel raccomandare le classi java.time , ma usano le lunghezze non necessarie per le tue esigenze specifiche.
Instant.now() // Capture the current moment in UTC with a resolution as fines nanoseconds but usually in microseconds or milliseconds.
.truncatedTo( ChronoUnit.MINUTES ) // Lop off any seconds or fractional second, to get a value in whole minutes.
.toString() // Generate a String in standard ISO 8601 format where a `T` separates the year-month-day from the hour-minute-second, and the `Z` on the end for “Zulu” means UTC.
2018-01-23T12: 34Z
Instant::toString
La jav.time.Instant
classe rappresenta un momento in UTC, sempre in UTC.
Instant instant = Instant.now() ;
instant.toString (): 2018-01-23T12: 34: 56.123456Z
L' Z
estremità della stringa di esempio 2010-10-12T08:50Z
è pronunciata "Zulu" e significa UTC .
Il formato desiderato risulta conforme allo standard ISO 8601 . Le classi java.time utilizzano questi formati standard per impostazione predefinita quando analizzano / generano stringhe. Quindi non è necessario specificare un modello di formattazione. Chiama Instant::toString
come visto sopra.
Se si desidera specificamente minuti interi senza secondi o secondi frazionari, quindi troncare. Specificare un'unità di tempo tramite ChronoUnit
classe.
Instant instant = Instant.now().truncatedTo( ChronoUnit.MINUTES ) ;
String output = instant.toString(); // Generate a `String` object in standard ISO 8601 format.
Informazioni su java.time
Il framework java.time è integrato in Java 8 e versioni successive. Queste classi soppiantare la vecchia fastidiosi legacy classi data-time come java.util.Date
, Calendar
, e SimpleDateFormat
.
Il progetto Joda-Time , ora in modalità manutenzione , consiglia la migrazione alle classi java.time .
Per saperne di più, consulta il tutorial Oracle . E cerca Stack Overflow per molti esempi e spiegazioni. La specifica è JSR 310 .
Puoi scambiare oggetti java.time direttamente con il tuo database. Utilizzare un driver JDBC conforme a JDBC 4.2 o successivo. Nessuna necessità di stringhe, nessuna necessità di java.sql.*
classi.
Dove ottenere le classi java.time?
Il progetto ThreeTen-Extra estende java.time con classi aggiuntive. Questo progetto è un banco di prova per possibili aggiunte future a java.time. Si possono trovare alcune classi utili, come per esempio Interval
, YearWeek
, YearQuarter
e altro .