2013-10-12 21 views
9

Ich benutze die Java-Bibliothek PrettyTime für eine Vielzahl von Datum/Zeit-Verarbeitung in meiner Java-App, wie zum Beispiel MySQL-Format Datumsangaben/Datetime Strings in Java-Daten konvertieren, oder umgekehrt.Wie konvertiert man java.util.Date-Objekte in Kalenderobjekte?

Allerdings sehe ich, dass , usw. sind alle veraltet, und es sagt, stattdessen Kalender zu verwenden. Aber PrettyTime gibt nur seine Ergebnisse als Date-Objekte zurück, und ich sehe keine Möglichkeit, die Date-Objekte in Kalenderobjekte zu konvertieren.

In der Dokumentation für Calendar, das nur erwähnen ich von Date sehen, ist das Verfahren setTime(Date date), aber die Methode Name ist mehrdeutig, und die Dokumentation ist nicht klar, was diese Methode aufrufen tatsächlich tun würde. Offensichtlich kann ich nicht einfach calendar.set(date.getYear(), date.getMonth(), ..) etc. tun, da diese Methoden von Date veraltet sind.

Also, wie kann ich ein bestimmtes Date-Objekt in Kalender konvertieren?

+1

'Kalender Kalender = ...; calendar.setTime (someDateObject); 'so einfach wie das –

+0

Oder Zeit in Millis bekommen. –

+1

Ihr Typen schreibt anscheinend etwas schneller als ich. –

Antwort

8
Calendar cal = Calendar.getInstance(); 
cal.setTime(date); 

Sie können den Kalender auch in anderen Gebietsschemas erhalten, wenn Sie möchten.

Sie könnten auch tun

cal.setTimeInMillis(date.getTime()); 
+2

Danke, ich wünschte, die 'setTime' Methode wäre nicht so ambivalent oder hätte eine klarere Dokumentation, also hätte ich das nicht fragen müssen. –

+0

Als allgemeine Empfehlung, wenn Sie können, versuchen Sie es mit Joda Zeit. Es ist viel sauberer als die Java-Standardzeit. –

+0

@ClickUpvote Ich würde stattdessen die Bibliothek [joda time] (http://www.joda.org/joda-time/) empfehlen oder auf Java 8 warten, wo die Date-API neu gestaltet wird. –

Verwandte Themen