我目前正在尝试获取两个日期之间的天数。
Date1 : 21-JAN-15
Date2 : 23-JUL-15
在我的本地eclipse tomcat服务器(在印度),我得到的天数为:183
,代码如下:
Calendar cal1 = new GregorianCalendar();
Calendar cal2 = new GregorianCalendar();
Date date1 = new Date("21-JAN-15");
Date date2 = new Date("23-JUL-15");
cal1.setTime(date1);
cal2.setTime(date2);
System.out.println("Days= "+daysBetween(cal1.getTime(),cal2.getTime()));
public int daysBetween(Date d1, Date d2){
return (int)( (d2.getTime() - d1.getTime()) / (1000 * 60 * 60 * 24));
}
当我将相同的java文件复制到linux服务器并使用javac
和java
命令在那里运行文件时,我得到的差异为:182,这比一天少。
我已使用以下命令确认Linux服务器的默认时区为EDT:date +%z
我在这里很困惑。我的应用程序中没有JODA库,我无法使用它。在本地环境和Linux服务器上获得统一结果需要做哪些更改?任何帮助将不胜感激!
答案 0 :(得分:0)
以下是使用TimeUnit
public static void main(String[] args) {
Date date1 = new Date("21-JAN-15");
Date date2 = new Date("23-JUL-15");
long diffInMillies = date2.getTime() - date1.getTime();
System.out.println(TimeUnit.MILLISECONDS.toDays(diffInMillies));
}
输出:
182