Frage

  1. Mein Server hat GMT + 7, so dass, wenn ich auf einen anderen Server eine andere GMT Zeitzone, die sich alle in db gespeicherte Datum wird nicht richtig?
  2. Ja Q1 richtig ist, wie etwa i Datum in GMT + 0 Zeitzone speichert und sie in benutzerdefinierten GMT Zeitzone von jedem Mitglied
  3. gewählt Anzeige
  4. Wie erhalte ich Datum GMT + 0 in Java
War es hilfreich?

Lösung

1) Zitat aus dem javadocs, Java-Millisekunden-Zeitstempel sind

  

die Differenz in Millisekunden gemessen wird, zwischen der aktuellen Zeit und Mitternacht, 1. Januar 1970 UTC.

Wenn daher der Zeitstempel ist UTC / GMT, wenn Sie es in der Datenbank speichern dieses Datum korrekt unabhängig von der Zeitzone des Servers sein.

2) für die Anzeige der Zeitstempel Formatierung auf der Zeitzone abhängig wäre der richtige Ansatz.

3) Erstellen einer neuen java.util.Date Instanz und ruft getTime () werden Sie den Zeitstempel erhalten für GMT + 0 in Java.

Andere Tipps

zu Marks Punkt hinzuzufügen, sobald Sie eine java.util.Date haben, können Sie „convert“ es jede Zeitzone (wie vom Benutzer ausgewählt). Hier ist ein Codebeispiel in Groovy (wird in Java mit leichtem Mods arbeiten):

// This is a test to prove that in Java, you can create ONE java.util.Date
// and easily re-display it in different TimeZones
fmtStr = "MM/dd/yyyy hh:mm aa zzz"
myDate = new java.util.Date()
sdf = new java.text.SimpleDateFormat(fmtStr)

// Default TimeZone
println "Date formatted with default TimeZone: " + sdf.format(myDate)

// GMT
sdf.setTimeZone(TimeZone.getTimeZone("GMT"))
println "Date formatted with GMT TimeZone: " + sdf.format(myDate)

// America/New_York
sdf.setTimeZone(TimeZone.getTimeZone("America/New_York"))
println "Date formatted with America/New_York TimeZone: " + sdf.format(myDate)

// PST
sdf.setTimeZone(TimeZone.getTimeZone("PST"))
println "Date formatted with PST TimeZone: " + sdf.format(myDate)
scroll top