[Java lista] Országkódból TimeZone

István Székely istvan.szekely at i-logic.hu
2009. Sze. 22., K, 13:18:55 CEST


Hello,

Ok, a kelleténél egy kicsit lassabban nekem is leesik, hogy miért nem 
lehet a Local és TimeZone osztályok között leképezés.

Laszlo Merenyi wrote:
> Ellenben ha ismert pl. a város, akkor már talán egyszerűbb... nézd meg a 
> joda time-ot:
>
>   http://joda-time.sourceforge.net/userguide.html#Chronology
>
> Pl.:
>   DateTimeZone zone = DateTimeZone.forID("Europe/London");
>
> -meri
>   
A Joda Time-ot megtaláltam, ezzel meg is tudnám kérdezni, hogy hány óra 
lesz itthon, amikor Londonban 17:45.

There is also support for the reverse operation, i.e. to get the 
datetime (absolute millisecond) corresponding to the moment when London 
has the same local time as exists in the default time zone /now/. This 
is done as follows

// get current moment in default time zone
DateTime dt = new DateTime();
// find the moment when London will have / had the same time
dtLondonSameTime = 
dt.withZoneRetainFields(DateTimeZone.forID("Europe/London"));

A problémám továbbra sem ez, hanem az, hogy mit kell a forID után írni. 
Ez ugyanaz, amit a JDK TimeZone.getTimeZone() is vár paraméternek. Ha 
olyat kap, ami nem ismert, akkor visszaad egy alapértelmezett GMT+0 
időzónát. Mondjuk America/Boston-ra nem olyan jó GMT+0 kapni eredményül.

Vagy vegyük Spanyolországot, ami szintén aranyos (Joda Time-nak van egy 
CSV, abból a részlet):

'Spain','ES','Africa/Ceuta'
'Spain','ES','Atlantic/Canary'
'Spain','ES','Europe/Madrid'

Nekem ebből ki kell találni, hogy Tenerife időzónája az 
'Atlantic/Canary'. Úgy látom, hogy kénytelen leszek egy 
repülőtér-időzóna adatbázist beszerezni valahonnan. :(

Stivi



További információk a(z) Javalist levelezőlistáról