Java 如何将utc中的日期时间格式设置为本地时间格式?
我有一个datetime对象,其值的格式为(通过断点获取) 我正在设法得到相应的当地时间 我在“hh:mma”中使用了格式“EEEE,mmmd” 但它不考虑-07:00小时偏移量,并返回:Java 如何将utc中的日期时间格式设置为本地时间格式?,java,datetime,jodatime,Java,Datetime,Jodatime,我有一个datetime对象,其值的格式为(通过断点获取) 我正在设法得到相应的当地时间 我在“hh:mma”中使用了格式“EEEE,mmmd” 但它不考虑-07:00小时偏移量,并返回: Friday, Sep 4 at 08:37 AM 预期值:9月4日星期五凌晨01:37 我缺少什么?您通过调用withZone(DateTimeZone.getDefault())请求转换为本地(默认)时区 输出 您是否尝试过使用DateTimeFormatter,因为我通过使用datetime(java
Friday, Sep 4 at 08:37 AM
预期值:9月4日星期五凌晨01:37
我缺少什么?您通过调用withZone(DateTimeZone.getDefault())
请求转换为本地(默认)时区
输出
您是否尝试过使用DateTimeFormatter
,因为我通过使用datetime(java.util.date)创建datetime解决了这一问题…目前这对我来说很有效…感谢您的回复…但是,这不是预期的o/p…我想在输出之前打印字符串,应用-07:00…9月4日星期五凌晨1:37,而不是星期五,9月4日上午8:37…您误解了-07:00的含义。它指定日期/时间用于时区中比GMT/UTC晚7小时的位置。如果希望时间以UTC为单位,则添加7小时并获得15:37
。如果您所在的时区为-07:00
(以PDT为例),则时间在您所在的时区内。如你所见,我在东海岸(EDT),所以我的时区是-04:00
,时间是11:37 AM
,比现在高3个小时。现在是10:37 PM
这里(EDT)和DateTime.now()
返回2015-09-02T22:37:01.134-04:00
。我的时间,我的时区。
dateTime.toString(format);
Friday, Sep 4 at 08:37 AM
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