0

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

1 回答 1

2

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

您应该只停留在 Joda Time 世界中,或者(如果必须)使用 aSimpleDateFormatter将 a 转换Date为 a String- 您可以在格式化程序上设置时区。

于 2013-04-17T20:58:33.897 回答