如何将 utc 格式的日期时间格式化为本地时间格式?
How to format datetime in utc to local time format?
我有一个日期时间对象,其值是格式(通过断点)
dateTime = 2015-09-04T08:37:00.440-07:00
我正在尝试获取相应的当地时间。
我使用了格式 "EEEE, MMM d 'at' hh:mm a"
.
dateTime.toString(format);
但它不考虑 -07:00 小时偏移并返回:
Friday, Sep 4 at 08:37 AM
预期值:Friday, Sep 4 at 01:37 AM
我错过了什么?
您要求通过调用 withZone(DateTimeZone.getDefault())
转换为本地(默认)时区。
DateTime dateTime = DateTime.parse("2015-09-04T08:37:00.440-07:00");
System.out.println(dateTime);
System.out.println(dateTime.toString("EEEE, MMM d 'at' hh:mm a"));
dateTime = dateTime.withZone(DateTimeZone.getDefault());
System.out.println(dateTime);
System.out.println(dateTime.toString("EEEE, MMM d 'at' hh:mm a"));
dateTime = dateTime.withZone(DateTimeZone.UTC);
System.out.println(dateTime);
System.out.println(dateTime.toString("EEEE, MMM d 'at' hh:mm a"));
输出
2015-09-04T08:37:00.440-07:00
Friday, Sep 4 at 08:37 AM
2015-09-04T11:37:00.440-04:00
Friday, Sep 4 at 11:37 AM
2015-09-04T15:37:00.440Z
Friday, Sep 4 at 03:37 PM
我有一个日期时间对象,其值是格式(通过断点)
dateTime = 2015-09-04T08:37:00.440-07:00
我正在尝试获取相应的当地时间。
我使用了格式 "EEEE, MMM d 'at' hh:mm a"
.
dateTime.toString(format);
但它不考虑 -07:00 小时偏移并返回:
Friday, Sep 4 at 08:37 AM
预期值:Friday, Sep 4 at 01:37 AM
我错过了什么?
您要求通过调用 withZone(DateTimeZone.getDefault())
转换为本地(默认)时区。
DateTime dateTime = DateTime.parse("2015-09-04T08:37:00.440-07:00");
System.out.println(dateTime);
System.out.println(dateTime.toString("EEEE, MMM d 'at' hh:mm a"));
dateTime = dateTime.withZone(DateTimeZone.getDefault());
System.out.println(dateTime);
System.out.println(dateTime.toString("EEEE, MMM d 'at' hh:mm a"));
dateTime = dateTime.withZone(DateTimeZone.UTC);
System.out.println(dateTime);
System.out.println(dateTime.toString("EEEE, MMM d 'at' hh:mm a"));
输出
2015-09-04T08:37:00.440-07:00
Friday, Sep 4 at 08:37 AM
2015-09-04T11:37:00.440-04:00
Friday, Sep 4 at 11:37 AM
2015-09-04T15:37:00.440Z
Friday, Sep 4 at 03:37 PM