我正在使用JodaTime2库创建一个具有给定时区的日期对象,如下所示:
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
答案 0 :(得分:2)
您正在打印Date
对象的值。 Date
没有时区 - Date.toString()
始终只使用“默认”时区。一个Date
只是自Unix时代以来的毫秒数;它不知道日历或时区。
您应该只是坚持Joda Time世界,或者(如果必须)使用SimpleDateFormatter
将Date
转换为String
- 您可以设置时区格式化程序。