谈 计算时间的天数差

java.util.Date  表示特定的瞬间,精确到毫秒。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。

从JDK1.1开始,应该使用 Calendar 类实现日期和时间字段之间的转换,使用DateFormat类来格式化和解析日期字符串。Date的相应方法已废弃。

尽管Date类打算反映 协调世界时(UTC),但无法做到如此准确,这取决于Java虚拟机的主机环境。

Date()  分配 Date 对象并 初始化 对象,以表示分配它的时间(精确到毫秒)。

java.text.SimpleDateFormat 

是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期-->文本)、解析(文本-->日期)和规范化。

simpleDateFormate使得可以选择任何用户定义的日期--时间格式的模式。但是,仍然建议通过DateFormat中的getTimeInstance、getDateInstance 或  创建日期--时间格式器。每一个这样的类方法都能够返回一个以默认格式初始化的日期/时间格式器。可以根据需要使用applyPattern方法来修改格式模式。

java.util.Calendar

是一个抽象类,它为特定瞬间与一组诸如Year Month 、Day_of_month .hour 等日历字段之间的转换提供了一些方法,并为操作日历字段 提供了一些方法。瞬间可用毫秒值来表示,与其他语言环境敏感类一样,Calendar 提供了一个类方法  getInstance,以获得此类型的一个通用 的对象。Calendar的getInstance方法返回一个calendar对象,其日历字段已由当前日期和时间初始化。

 1 Calendar cal = Calendar.getInstance();
 2         Calendar cal2 = Calendar.getInstance();
 3         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 4         Date st = new Date();
 5         st = sdf.parse("2001-10-10");
 6         cal.setTime(st);
 7         
 8         Date et = new Date();
 9         et =sdf.parse("2001-10-15");
10         cal2.setTime(et);
11         long  gap =(cal2.getTimeInMillis()-cal.getTimeInMillis())/(1000*3600*24);
12         System.out.println(gap);
View Code
原文地址:https://www.cnblogs.com/shuanlei/p/4561808.html