java.time
Die Antwort von MadProgrammer ist richtig, insbesondere der Tipp zu Joda-Time . Der Nachfolger von Joda-Time ist jetzt als neues java.time-Paket in Java 8 integriert . Hier ist Beispielcode in Java 8.
Bei der Arbeit mit Datum und Uhrzeit (im Gegensatz zum lokalen Datum) ist die Zeitzone kritisch. Der Tag des Monats hängt von der Zeitzone ab. Zum Beispiel kann die Indien Zeitzone ist +05:30
(fünfeinhalb Stunden vor UTC), während Frankreich nur eine Stunde voraus ist. Ein Moment an einem neuen Tag in Indien hat also ein Datum, während der gleiche Moment in Frankreich das Datum von gestern hat. Das Erstellen einer Zeichenfolgenausgabe ohne Zeitzonen- oder Versatzinformationen führt zu Mehrdeutigkeiten. Sie haben nach der Ausgabe von JJJJ-MM-TT gefragt, die ich bereitgestellt habe, aber ich empfehle sie nicht. Stattdessen ISO_LOCAL_DATE
hätte ich ISO_DATE
diese Ausgabe erhalten:2014-02-25+05:30
ZoneId zoneId = ZoneId.of( "Asia/Kolkata" );
ZonedDateTime zonedDateTime = ZonedDateTime.now( zoneId );
DateTimeFormatter formatterOutput = DateTimeFormatter.ISO_LOCAL_DATE; // Caution: The "LOCAL" part means we are losing time zone information, creating ambiguity.
String output = formatterOutput.format( zonedDateTime );
Auf die Konsole werfen ...
System.out.println( "zonedDateTime: " + zonedDateTime );
System.out.println( "output: " + output );
Beim Laufen…
zonedDateTime: 2014-02-25T14:22:20.919+05:30[Asia/Kolkata]
output: 2014-02-25
Joda-Zeit
Ähnlicher Code unter Verwendung der Joda-Time- Bibliothek, dem Vorläufer von java.time.
DateTimeZone zone = new DateTimeZone( "Asia/Kolkata" );
DateTime dateTime = DateTime.now( zone );
DateTimeFormatter formatter = ISODateTimeFormat.date();
String output = formatter.print( dateTime );
ISO 8601
Übrigens ist dieses Format Ihrer Eingabezeichenfolge ein Standardformat, eines von mehreren praktischen Datums- / Uhrzeitzeichenfolgenformaten, die durch ISO 8601 definiert sind .
Sowohl Joda-Time als auch java.time verwenden standardmäßig die Formate ISO 8601, wenn Zeichenfolgendarstellungen verschiedener Datums- und Uhrzeitwerte analysiert und generiert werden.
Date
zuyyyy-MM-dd
analysieren ? Um das Datum zu formatieren, verwenden Sie einfach , um es zu analysieren, verwenden Sieyyyy-MM-dd
Date
format1.format(date)
format1.parse(someStringValueInTheCorrectFormat)