Wie konvertieren von java Datum in ein Datum-Objekt basierend auf der Zeitzone?
Also ich Speichere die Zeit-Stempel als Date
Objekt und eine Zeitzone als TimeZone
Objekt.
Nun möchte ich eine Funktion, der eine Date
Objekt und ein TimeZone
- Objekt als argument und gibt eine Date
Objekt angepasst mit der Zeit-Stempel.
Beispiel :
Eingang :
Datum-Zeitzone 12:00 Moskauer Standard Zeit (UTC+3)
Ausgabe :
Datum 3:00
Edit:
Entfernt Hinweis zu Calendar
- Kalender ist der Weg, dies zu tun. Was macht Ihren Fall zu tun haben, mit der internen Objekte, die Sie verwenden, um das problem zu lösen?
- Was ich meinte ist, dass ich nicht speichern möchten calendar-Objekt in der db, krank zu Bearbeiten, zu klären. können Sie Beispiel dafür, wie es zu konvertieren mit dem Kalender?
- ahh joda Zeit macht das Leben so viel einfacher.
- ich weiß ! im gehend, wechseln die ganzen code 'eines Tages' zu joda. für jetzt bin ich stecken mit Datum in java
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen
java.util.Date
ist ein absoluter Punkt in der Zeit. 0900 Stunden UTC und 1200 Stunden UTC+3 sind exakt die gleichenjava.util.Date
Objekt. Es gibt keine "Anpassung" vorgenommen werden, um es in Ordnung zu repräsentieren, die eine oder die andere.Um den Menschen lesbare Darstellung der Buchhaltung für einen bestimmten Zeitzone Sie können die Zeitzone auf eine
DateFormat
Objekt.Lösung für die gestellte Frage im Kommentar:
Hier gehen Sie:
Wenn Sie nicht mit dem Kalender, was verwenden Sie? Eine andere Bibliothek, vielleicht?
Wenn nicht, haben Sie, dass +3 Ende der Zeitzone...Sie könnten, stoßen die Stunde (+/-)X, in diesem Falle +3. Denken Sie daran, dass, in diesem Fall (zum Beispiel) 11+3=2. Diese Mathematik könnte erreicht werden, durch hinzufügen von h + offset, wobei der Wert % 12, und Einstellung, die Antwort, denn die Stunde (Einstellung für eine Antwort von 0 bis 12, wenn Sie so gewünscht). Macht das Sinn?
Ich einen einfachen Weg gefunden, um zu erreichen, dass mit der rowOffset der gewünschten Zeitzone :
Edit: als Affe hinweisen, dies zu ignorieren Schaltsekunden-und Sommerzeit.