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

java日期差异拼图

发布时间:2020-12-15 01:02:33 所属栏目:Java 来源:网络整理
导读:我想计算一个日期时间差,但我得到一些奇怪的结果: 这是来源: import java.util.Calendar; import java.util.Collections; import java.util.Vector; public class Main { static Calendar dcal = Calendar.getInstance(); static Calendar ccal = Calendar
我想计算一个日期时间差,但我得到一些奇怪的结果:
这是来源:
import java.util.Calendar;
    import java.util.Collections;
    import java.util.Vector;

    public class Main {

        static Calendar dcal = Calendar.getInstance();
    static Calendar ccal = Calendar.getInstance();
    public static void main(String[] args) {
        dcal.set(2011,1,27);
        ccal.set(2011,2,1);
        long dtime = dcal.getTimeInMillis();
        long ctime = ccal.getTimeInMillis();
        long diff = ctime - dtime;
        int hours = (int) (diff / (1000 * 60 * 60));
        System.out.println("hours->"+hours);

    }

}

当我将ccal设置为2011年1月31日时,日期差异为96小时,但是当我将其设置为2011年2月1日时
日期差异是48小时.怎么会这样?什么是补救措施?

谢谢,

埃利奥特

解决方法

如果你像ccal.set(2011,31)那样设置ccal,那么日期实际上是2001年3月3日,因为几个月基于零并且日历默认滚动.所以48小时(96-48)的差异是正确的,因为3月1日(设定(2011,1))和3月3日(设定(2011,31))之间有两天.

(编辑:李大同)

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

    推荐文章
      热点阅读