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);