如何使用jodatime库在日期字段中设置时区

时间:2013-04-17 20:55:27

标签: datetime java-7 jodatime

我正在使用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

1 个答案:

答案 0 :(得分:2)

您正在打印Date对象的值。 Date 没有时区 - Date.toString()始终只使用“默认”时区。一个Date 只是自Unix时代以来的毫秒数;它不知道日历或时区。

您应该只是坚持Joda Time世界,或者(如果必须)使用SimpleDateFormatterDate转换为String - 您可以设置时区格式化程序。