繁体   English   中英

如何将UTC中的日期时间格式化为本地时间格式?

[英]How to format datetime in utc to local time format?

我有一个datetime对象,其值的格式(通过断点获取)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM