Die Umwandlung der "America/Los Angeles" Zeitzone "PST" oder "PDT" in Java ME

Mein server schickt mir Zeitzonen, die im format "America/Los Angeles". Auf dem client habe ich eine Zeit, die ich brauche, um die Anzeige in die Zeitzone. Die Antwort wird sein, "PST" oder "PDT", abhängig von der Sommerzeit auf die Zeit gegeben. Wie mache ich, dass die Umstellung?

Bin ich auf Java ME, Blackberry 4.7, um genau zu sein), so kann ich nicht verwenden, Joda Time.

Werde ich brauchen, um diese Berechnung schnell für eine Menge Termine (aber nur eine Zeitzone hat), ich kann also nicht einfach den server senden Sie mir eine ausgeglichen werden, da der offset könnte sich ändern, je nach Datum.

Edit: Lassen Sie mich formulieren Sie das problem, denn es scheint einige Verwirrung. Ich bin da ein zoneinfo Namen und ein Datum. Ich will wissen, den offset von GMT in dieser Zeitzone zu diesem Zeitpunkt. Die Antwort variiert je nach Sommerzeit.

Als zusätzlichen bonus, ich würde gerne den TLA zu zeigen, der Benutzer (d.h., "PST" oder "PDT"), aber das ist Sekundär.

Lösung: ich fasse hier die Lösung, denn es ist nicht sonderlich klar aus den Antworten unten. Dies tut im wesentlichen das, was ich brauche, in J2ME:

TimeZone zone = TimeZone.getTimeZone("America/Los_Angeles");
Calendar calendar = Calendar.getInstance();
calendar.setTimeZone(zone);

calendar.setTime(new Date(2011, 1, 1, 12, 0, 0));      
System.out.println(zone.getOffset(1, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), calendar.get(Calendar.DAY_OF_WEEK), calendar.get(Calendar.MILLISECOND)));
calendar.setTime(new Date(2011, 6, 1, 12, 0, 0));
System.out.println(zone.getOffset(1, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), calendar.get(Calendar.DAY_OF_WEEK), calendar.get(Calendar.MILLISECOND)));
Aufgrund Antwort, 'Amrica/Los_angeles' und 'PDT' haben den gleichen offset!

InformationsquelleAutor Dirk Groeneveld | 2011-02-01

Schreibe einen Kommentar