Joda-Time DateTime 更改时区?
Joda-Time DateTime changes timezone?
我正在将看起来像 "2015-06-06T01:51:49-06:00"
的文件中的字符串读取到 Joda-Time DateTime
对象中。但是 DateTime
并没有按照我想要的方式运行。
import org.joda.time.DateTime;
System.out.println("2015-06-06T01:51:49-06:00");
System.out.println(new DateTime("2015-06-06T01:51:49-06:00"));
结果如下
2015-06-06T01:51:49-06:00
2015-06-06T00:51:49.000-07:00
稍后我需要小时和分钟。这里就是 1:51。但是我猜 DateTime 是在不同的时区打印出来的?如何让 DateTime 打印出来 2015-06-06T01:51:49.000-06:00
DateTime
stores a time zone, but the DateTime(Object instant)
构造函数首先将 String
转换为瞬间(毫秒),从而丢失时区信息,因此它将默认时区应用于该瞬间。
要保留时区,请使用 DateTime.parse(String str)
:
System.out.println("2015-06-06T01:51:49-06:00");
System.out.println(new DateTime("2015-06-06T01:51:49-06:00"));
System.out.println(DateTime.parse("2015-06-06T01:51:49-06:00"));
输出
2015-06-06T01:51:49-06:00
2015-06-06T03:51:49.000-04:00
2015-06-06T01:51:49.000-06:00
我正在将看起来像 "2015-06-06T01:51:49-06:00"
的文件中的字符串读取到 Joda-Time DateTime
对象中。但是 DateTime
并没有按照我想要的方式运行。
import org.joda.time.DateTime;
System.out.println("2015-06-06T01:51:49-06:00");
System.out.println(new DateTime("2015-06-06T01:51:49-06:00"));
结果如下
2015-06-06T01:51:49-06:00
2015-06-06T00:51:49.000-07:00
稍后我需要小时和分钟。这里就是 1:51。但是我猜 DateTime 是在不同的时区打印出来的?如何让 DateTime 打印出来 2015-06-06T01:51:49.000-06:00
DateTime
stores a time zone, but the DateTime(Object instant)
构造函数首先将 String
转换为瞬间(毫秒),从而丢失时区信息,因此它将默认时区应用于该瞬间。
要保留时区,请使用 DateTime.parse(String str)
:
System.out.println("2015-06-06T01:51:49-06:00");
System.out.println(new DateTime("2015-06-06T01:51:49-06:00"));
System.out.println(DateTime.parse("2015-06-06T01:51:49-06:00"));
输出
2015-06-06T01:51:49-06:00
2015-06-06T03:51:49.000-04:00
2015-06-06T01:51:49.000-06:00