ryb*_*ber 11 java time calendar jodatime
为什么此测试失败:
DateTime dateTime = new DateTime(1997,01,01,00,00,00,00, DateTimeZone.UTC);
long jodaMills = dateTime.getMillis();
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
cal.set(1997,01,01,00,00,00);
long calMills = cal.getTimeInMillis();
Assert.assertEquals(jodaMills, calMills);
Run Code Online (Sandbox Code Playgroud)
我得到的结果是:预期:852076800000实际:854755200964
它们不应该是相同的数字吗?
Cod*_*nci 22
日历基于零的月份,JodaTime月份字段从1开始.
因此,在JodaTime中,1月是1月,但在日历中,1月是0月.
因此,在您的示例中,您将比较1月1日到2月1日,因此值的差异.
由于JodaTime被设置为零,但是Calendar对象不是,因此还存在毫秒差异.
Ami*_*far 13
两个原因:
Joda有一个月的基础.所以你需要改变它.
日历设计很差.您没有将秒的毫秒数设置为0.cal.set(MILLISECOND, 0)
这是javadoc
public final void set(int year,int month,int date,int hourOfDay,int minute,int second)
哪个缺少毫秒字段.
| 归档时间: |
|
| 查看次数: |
3859 次 |
| 最近记录: |