2012-03-07 65 views
4

TZ在我的編輯中是GMT + 5。在Joda時間解析日期時混淆時區

final DateTime date1 = dtf.parseDateTime("1979-04-29"); 
    final DateTime date2 = dtf.parseDateTime("1979-05-12"); 
    final DateTime date3 = dtf.parseDateTime("1979-04-02"); 
    final DateTime date4 = dtf.parseDateTime("1979-04-15"); 
    System.err.println(date1.toString()); 
    System.err.println(date2.toString()); 
    System.err.println(date3.toString()); 
    System.err.println(date4.toString()); 

輸出是

1979-04-29T00:00:00.000-05:00 
1979-05-12T00:00:00.000-04:00 
1979-04-02T00:00:00.000-05:00 
1979-04-15T00:00:00.000-05:00 

-04?爲什麼?

如果添加

DateTimeZone.setDefault(DateTimeZone.forID("Etc/GMT+5")); 

之前,那麼輸出將是

1979-04-29T00:00:00.000-05:00 
1979-05-12T00:00:00.000-05:00 
1979-04-02T00:00:00.000-05:00 
1979-04-15T00:00:00.000-05:00 
+4

那會是c alled「夏令時」:http://www.timeanddate.com/time/dst/1979.html – 2012-03-07 09:25:26

+0

@BrianRoach - 這將被稱爲答案。 – MByD 2012-03-07 09:27:14

+0

@BinyaminSharet - 我不打擾...但決定把它移到一個。 – 2012-03-07 09:28:07

回答