Jim*_*Jim 2 java calendar jodatime
为什么这两个调试行打印不同的小时数?
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());
Run Code Online (Sandbox Code Playgroud)
第2行显示当前时间.
第1行显示适当时区的时间.
该方法getTime()在Calendar返回一个Date对象.一个Date对象不具有一个时区.它仅表示自1970年1月1日午夜以来UTC时区的时间(以毫秒为单位).打印时,它使用默认时区,除非您使用的DateFormat是使用时区设置的时区.
Joda-Time DateTime是一个包含时区的对象.从Calendar对象创建时,它会占用该日历的时区.
因此,当您Date从a 创建时Calendar,您将丢失时区信息.当您创建a DateTime时Calendar,您可以保留时区信息.
| 归档时间: |
|
| 查看次数: |
38 次 |
| 最近记录: |