Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
两个时区不同的java日期之间经过的天数_Java_Excel_Date_Time_Timezone - Fatal编程技术网

两个时区不同的java日期之间经过的天数

两个时区不同的java日期之间经过的天数,java,excel,date,time,timezone,Java,Excel,Date,Time,Timezone,我有两次约会,但一次是CET,另一次是CEST Calendar calFrom = Calendar.getInstance(); calFrom.set( 2013, 2, 20,0,0,0); Calendar calTo = Calendar.getInstance(); calTo.set( 2013, 3, 5,0,0,0); long daysPassed= (calTo.getTime

我有两次约会,但一次是CET,另一次是CEST

   Calendar calFrom = Calendar.getInstance();
            calFrom.set( 2013, 2, 20,0,0,0);
            Calendar calTo = Calendar.getInstance();
            calTo.set( 2013, 3, 5,0,0,0);

        long daysPassed= (calTo.getTime().getTime() - calFrom.getTime().getTime()) / (1000 * 60 * 60 * 24);
        System.out.println("calFrom: " + calFrom.getTime());
        System.out.println("calTo: " + calTo.getTime());
        System.out.println("daysPassed: " + daysPassed);
结果显示:

calFrom: Wed Mar 20 00:00:00 CET 2013
calTo: Fri Apr 05 00:00:00 CEST 2013
daysPassed: 15
然而微软excel表示,这两天的差异是16


如何能够像Excel一样计算过去的天数?

JodaTime似乎可以处理这个问题:

您是说Java计算忽略了时区偏移吗?Javadoc说:“返回一个日期对象,表示这个日历的时间值(与历元的毫秒偏移量)。”。“这可能就是为什么它从历元中获取时间,而不考虑时区的原因。在Java8中,有一个新的日期时间API,取代了以前JDK中现有的日历和日期API。请参见此处:特别是“持续时间”部分。我自己从来没有试过。如果这可以解决您的问题,请分享。谢谢您的回复,我知道Java 8有一个新的日期API,但在我的公司我们还不能使用Java 8:)