So konvertieren Sie das Kalenderdatum in das yyyy-MM-dd
Format.
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
Date date = cal.getTime();
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
String date1 = format1.format(date);
Date inActiveDate = null;
try {
inActiveDate = format1.parse(date1);
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Dies wird produzieren inActiveDate = Wed Sep 26 00:00:00 IST 2012
. Aber was ich brauche ist 2012-09-26
. Mein Zweck ist es, dieses Datum anhand von Hibernate-Kriterien mit einem anderen Datum in meiner Datenbank zu vergleichen. Also brauche ich das Datumsobjekt im yyyy-MM-dd
Format.
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)
( new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss.SSSXXX" ) ).format( Calendar.getInstance().getTime() );
Antworten:
Ein Java
Date
ist ein Container für die Anzahl der Millisekunden seit dem 1. Januar 1970, 00:00:00 GMT.Wenn Sie so etwas wie
System.out.println(date)
verwendenDate.toString()
, druckt Java den Inhalt.Die einzige Möglichkeit, dies zu ändern, besteht darin
Date
, Ihre eigene Implementierung zu überschreiben und bereitzustellenDate.toString()
. Bevor Sie Ihre IDE starten und dies versuchen, würde ich es nicht tun. es wird die Sache nur komplizieren. Sie sollten das Datum besser in das Format formatieren, das Sie verwenden (oder anzeigen) möchten.Java 8+
Vor Java 8
Sie sollten den ThreeTen Backport verwenden
Das Folgende wird für historische Zwecke beibehalten (als ursprüngliche Antwort)
Sie können das Datum formatieren.
Dies ist eigentlich das gleiche Datum, unterschiedlich dargestellt.
quelle
Calendar
Calendar
Ihr Code ist falsch. Kein Punkt zum Parsen des Datums und behalten Sie dieses als Datumsobjekt.
Sie können das Kalenderdatumobjekt formatieren, wenn Sie es anzeigen möchten, und es als Zeichenfolge beibehalten.
quelle
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. StattdessenISO_LOCAL_DATE
hätte ichISO_DATE
diese Ausgabe erhalten:2014-02-25+05:30
Auf die Konsole werfen ...
Beim Laufen…
Joda-Zeit
Ähnlicher Code unter Verwendung der Joda-Time- Bibliothek, dem Vorläufer von java.time.
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.
quelle
java.util.Date
Das Objekt kann das Datum nicht im benutzerdefinierten Format darstellen. Stattdessen müssen Sie eineSimpleDateFormat.format
Methode verwenden, die zurückgibtstring
.quelle
Um ein
java.util.Date
Objekt zu analysieren , müssen Sie es zuerst in Ihrem eigenen Format in String konvertieren.Aber ich glaube, Sie sind hier überflüssig.
quelle
Dadurch wird Ihr Datum + 7 Tage im Format Monat, Tag und Jahr in einem JOption-Fenster angezeigt.
quelle
quelle
Ich habe diesen Code gefunden, in dem das Datum in einem Format verglichen wird, um es mit dem Datumsfeld in der Datenbank zu vergleichen. Möglicherweise ist dies für Sie hilfreich.
Wenn Sie die Zeichenfolge mit vereinfachtem Format in ein Datum konvertieren, ist es schwierig, sie mit dem Feld Datum in MySQL-Datenbanken zu vergleichen.
Konvertieren Sie also das Datum der Java-Zeichenfolge in das Format, indem Sie STR_to_DATE ('Ihr Datum', '% m /% d /% Y') -> in dieses Format auswählen. Dann erhalten Sie das genaue Datumsformat des MySQL-Datumsfelds.
http://javainfinite.com/java/java-convert-string-to-date-and-compare/
quelle
quelle