java日期差异拼图

前端之家收集整理的这篇文章主要介绍了java日期差异拼图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想计算一个日期时间差,但我得到一些奇怪的结果:
这是来源:
  1. import java.util.Calendar;
  2. import java.util.Collections;
  3. import java.util.Vector;
  4.  
  5. public class Main {
  6.  
  7. static Calendar dcal = Calendar.getInstance();
  8. static Calendar ccal = Calendar.getInstance();
  9. public static void main(String[] args) {
  10. dcal.set(2011,1,27);
  11. ccal.set(2011,2,1);
  12. long dtime = dcal.getTimeInMillis();
  13. long ctime = ccal.getTimeInMillis();
  14. long diff = ctime - dtime;
  15. int hours = (int) (diff / (1000 * 60 * 60));
  16. System.out.println("hours->"+hours);
  17.  
  18. }
  19.  
  20. }

当我将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))之间有两天.

猜你在找的Java相关文章