Par*_*ade 8 java timezone date utc jodatime
我试图通过使用Joda Time将本地日期转换为UTC .我使用的代码如下所示,效果很好.
Date localDate = new Date();
System.out.println("Local Date : " + localDate);
DateTimeZone tz = DateTimeZone.getDefault();
Date utcDate = new Date(tz.convertLocalToUTC(localDate.getTime(), false));
System.out.println("UTC Date : " + utcDate);
Output :
Local Date : Wed May 29 11:54:46 EEST 2013
UTC Date : Wed May 29 08:54:46 EEST 2013
Run Code Online (Sandbox Code Playgroud)
但是,如果我将UTC日期作为参数发送到DateTimeZone.convertLocalToUTC()方法,它也会将小时减少3.但是,由于它是UTC日期,我希望它不会再次转换日期.这是一个错误还是我错过了什么?
Date localDate = new Date();
System.out.println("Local Date : " + localDate);
DateTimeZone tz = DateTimeZone.getDefault();
Date utcDate = new Date(tz.convertLocalToUTC(localDate.getTime(), false));
System.out.println("UTC Date : " + utcDate);
Date utcDate2 = new Date(tz.convertLocalToUTC(utcDate.getTime(), false));
System.out.println("UTC Date 2 : " + utcDate2);
Output :
Local Date : Wed May 29 11:54:46 EEST 2013
UTC Date : Wed May 29 08:54:46 EEST 2013
UTC Date 2 : Wed May 29 05:54:46 EEST 2013
Run Code Online (Sandbox Code Playgroud)
按照javadoc convertLocalToUTC
使用相同的本地时间将本地时刻转换为标准UTC时刻.在执行使用简单局部区域进行计算的计算之后使用此转换.
方法没有假设或验证通过日期是否UTC
存在,它始终将传递日期视为本地并转换为UTC
.您的程序输出是正确的.
convertLocalToUTC()
从方法的角度来看。只需要 along
和 a boolean
。它不知道你正在经历的时间UTC
有多长。它假设您正在传递long
当地时间并相应地进行调整。
归档时间: |
|
查看次数: |
10868 次 |
最近记录: |