tl; dr
Einige der anderen Antworten empfehlen Java.time- Klassen korrekt, verwenden jedoch unnötige Längen für Ihre spezifischen Anforderungen.
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
Die jav.time.Instant
Klasse repräsentiert einen Moment in UTC, immer in UTC.
Instant instant = Instant.now() ;
instant.toString (): 2018-01-23T12: 34: 56.123456Z
Die Z
am Ende Ihrer Beispielzeichenfolge 2010-10-12T08:50Z
wird "Zulu" ausgesprochen und bedeutet UTC .
Ihr gewünschtes Format entspricht zufällig der Norm ISO 8601 . Die java.time- Klassen verwenden diese Standardformate standardmäßig beim Parsen / Generieren von Zeichenfolgen. Sie müssen also kein Formatierungsmuster angeben. Ruf einfach anInstant::toString
wie oben gezeigt an.
Wenn Sie speziell ganze Minuten ohne Sekunde oder Sekundenbruchteil möchten, schneiden Sie diese ab. Geben Sie eine Zeiteinheit über die ChronoUnit
Klasse an.
Instant instant = Instant.now().truncatedTo( ChronoUnit.MINUTES ) ;
String output = instant.toString(); // Generate a `String` object in standard ISO 8601 format.
Über java.time
Das java.time- Framework ist in Java 8 und höher integriert. Diese Klassen verdrängen die lästigen alten Legacy - Datum-Zeit - Klassen wie java.util.Date
, Calendar
, &SimpleDateFormat
.
Das Joda-Time- Projekt, das sich jetzt im Wartungsmodus befindet , empfiehlt die Migration auf java.time Klassen .
Weitere Informationen finden Sie im Oracle-Lernprogramm . Suchen Sie im Stapelüberlauf nach vielen Beispielen und Erklärungen. Die Spezifikation ist JSR 310 .
Sie können java.time- Objekte direkt mit Ihrer Datenbank austauschen . Verwenden Sie einen JDBC-Treiber, der mit JDBC 4.2 oder höher kompatibel ist . Keine Notwendigkeit für Zeichenfolgen, keine Notwendigkeit für java.sql.*
Klassen.
Woher bekomme ich die java.time-Klassen?
Das ThreeTen-Extra- Projekt erweitert java.time um zusätzliche Klassen. Dieses Projekt ist ein Testfeld für mögliche zukünftige Ergänzungen von java.time. Sie können einige nützliche Klassen hier wie finden Interval
, YearWeek
, YearQuarter
, und mehr .