Bij het parsen van een string die een tijd-zone bevat, lijkt die tijdzone door de SimpleDateFormat genegeerd te worden. Iemand die dit wel eens is tegen gekomen en weet wat ik er aan kan doen?
Zie onderstaande code. Ik maak twee SimpelDateFormatters aan; eentje die wel een tijdzone 'snapt' en eentje die dat niet doet. Ik stop in beiden dezelfde tijd, en forceer de ene naar CET. Beiden zouden m.i. hetzelfde resultaat moeten geven, maar dat is niet zo.
Het resultaat is:(spaties toegevoegd voor de opmaak)
NB de eerste is dus niet goed, dat is namelijk als je het weer terug rekent 2005-10-03 03:00 CET. Het werkt trouwens wel als ik CEST invoer als tijdzone, maar dat bestaat niet volgens TimeZone.getAvailableIDs().
Zie onderstaande code. Ik maak twee SimpelDateFormatters aan; eentje die wel een tijdzone 'snapt' en eentje die dat niet doet. Ik stop in beiden dezelfde tijd, en forceer de ene naar CET. Beiden zouden m.i. hetzelfde resultaat moeten geven, maar dat is niet zo.
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| public static void main(String[] args) { Date d; String timeCetZone = "2005-10-03 02:00 CET"; SimpleDateFormat reportDateZone = new SimpleDateFormat("yyyy-MM-dd HH:mm z"); d = reportDateZone.parse(timeCetZone); System.out.println(timeCetZone + " ==> " + d.getTime()); String timeCet = "2005-10-03 02:00"; SimpleDateFormat reportDate = new SimpleDateFormat("yyyy-MM-dd HH:mm"); TimeZone timeZone = TimeZone.getTimeZone("CET"); reportDate.setTimeZone(timeZone); d = reportDate.parse(timeCet); System.out.println(timeCet + " ==> " + d.getTime()); } |
Het resultaat is:(spaties toegevoegd voor de opmaak)
code:
1
2
| 2005-10-03 02:00 CET ==> 1128301200000 2005-10-03 02:00 ==> 1128297600000 |
NB de eerste is dus niet goed, dat is namelijk als je het weer terug rekent 2005-10-03 03:00 CET. Het werkt trouwens wel als ik CEST invoer als tijdzone, maar dat bestaat niet volgens TimeZone.getAvailableIDs().
I don't kill flies, but I like to mess with their minds. I hold them above globes. They freak out and yell "Whooa, I'm *way* too high." -- Bruce Baum