2013-04-17 35 views
0

設置在日期字段時區,我使用JodaTime2庫創建日期對象與給定的時區爲:如何使用jodatime庫

import org.joda.time.DateTime; 
import org.joda.time.DateTimeZone; 

DateTimeZone tz = DateTimeZone.forID("America/New_York"); 
System.out.println("timezone=" + tz); 
Date d = new DateTime(2013, 1, 1, 0, 0, tz).toDate(); 
System.out.println("Cur Date = " + d); 

然而,當我打印此日期,報告的時區是CST。我錯過了什麼?

timezone=America/New_York 
Cur Date = Tue Jan 01 13:00:00 CST 2013 

回答

2

您正在打印出Date對象的值。 Date不是時區 - Date.toString()總是隻使用「默認」時區。 A Date只是自Unix紀元以來的毫秒數;它不知道日曆或時區。

您應該堅持在Joda時間世界中,或者(如果您必須)使用SimpleDateFormatterDate轉換爲String - 您可以在格式器上設置時區。

+0

謝謝@Jon Skeet – lava