小编Ami*_*rma的帖子

为什么特定日期(03/12/2018)之间的差异不是确切的天数?

我正面临Java的一个奇怪问题(版本6,7,8).在这段代码中,我试图计算2个日期之间的日期差异,这段代码给出了我在03/12/2018和01/04/2018之间的日期差异,为66.958天,而不是67天,这有点令人惊讶.我还没见过这种行为.

为了证明这个理论,你可以尝试在03/11/2018之前的任何日期,这是简单的数学.请告知你们的想法.我已经尝试了与Java捆绑在一起的ChronoUnit类,它正确地计算了天数,但只是想知道这里发生了什么,如果你有任何意见.

static  void dateLogic1() throws ParseException{
       String matYear1 = "03/11/2018";
       String matYear2 = "03/12/2018";

       String stlDate = "01/04/2018";


       java.util.Date mtYear1 = new SimpleDateFormat("MM/dd/yyyy").parse(matYear1);
       java.util.Date mtYear2 = new SimpleDateFormat("MM/dd/yyyy").parse(matYear2);


       java.util.Date stYear = new SimpleDateFormat("MM/dd/yyyy").parse(stlDate);

       long time1 = mtYear1.getTime();
       long time2 = mtYear2.getTime();
       long time4 = stYear.getTime();


       double diff1 =  (double) (mtYear1.getTime()-stYear.getTime()) /( 24 * 60 * 60 * 1000);
       double diff2 =  (double) (mtYear2.getTime()-stYear.getTime()) /( 24 * 60 * 60 * 1000);

       System.out.println("Date Diff between "+ mtYear1 +" & "+ …
Run Code Online (Sandbox Code Playgroud)

java date

3
推荐指数
1
解决办法
98
查看次数

标签 统计

date ×1

java ×1