加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 为什么JodaTime和Calendar返回不同的结果

发布时间:2020-12-14 05:03:47 所属栏目:Java 来源:网络整理
导读:为什么这个测试失败: DateTime dateTime = new DateTime(1997,01,00,DateTimeZone.UTC); long jodaMills = dateTime.getMillis(); Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC")); cal.set(1997,00); long calMills = cal.getTimeInMil
为什么这个测试失败:
DateTime dateTime = new DateTime(1997,01,00,DateTimeZone.UTC);
    long jodaMills = dateTime.getMillis();

    Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
    cal.set(1997,00);
    long calMills = cal.getTimeInMillis();

    Assert.assertEquals(jodaMills,calMills);

我得到以下结果:
预计:852076800000
实际:854755200964

他们不应该是相同的数字吗?

解决方法

两个原因:

> Joda有一个月.所以你需要改变.
>日历设计不佳您没有将秒的毫秒设置为0. cal.set(MILLISECOND,0)

这是javadoc

public final void set(int year,
int month,
int date,
int hourOfDay,
int minute,
int second)

哪个是毫秒的字段.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读