当前位置:  开发笔记 > 编程语言 > 正文

为什么Joda和Calendar会打印不同的时间?

如何解决《为什么Joda和Calendar会打印不同的时间?》经验,为你挑选了1个好方法。

为什么这两个调试行打印不同的小时数?

TimeZone tz = TimeZone.getTimeZone("GMT-5");    
Calendar cal = Calendar.getInstance(tz);    
DateTime dt = new DateTime(cal);    
System.out.println("1 ====> " + dt.toString());  
System.out.println("2 ====> " + cal.getTime());    

第2行显示当前时间.
第1行显示适当时区的时间.



1> RealSkeptic..:

该方法getTime()Calendar返回一个Date对象.一个Date对象不具有一个时区.它仅表示自1970年1月1日午夜以来UTC时区的时间(以毫秒为单位).打印时,它使用默认时区,除非您使用的DateFormat是使用时区设置的时区.

Joda-Time DateTime是一个包含时区的对象.从Calendar对象创建时,它会占用该日历的时区.

因此,当您Date从a 创建时Calendar,您将丢失时区信息.当您创建a DateTimeCalendar,您可以保留时区信息.

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有