黑马程序员__关于学习Date类、Calendar类的总结

------- android培训java培训、期待与您交流! ----------

           在Java的util包中有一个日期类Date,在 JDK 1.1 之前,类 Date有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和分析日期字符串。不过,这些函数的 API 不易于实现国际化。从 JDK 1.1 开始,应该使用Calendar 类实现日期和时间字段之间转换,使用DateFormat 类来格式化和分析日期字符串。Date中的相应方法已废弃。

         在初始化一个日期对象的时候 Date d1 = new Date(); 分配Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒);还有一个构造方法publicDate(long date)  返回值是Date,分配Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。

       尽管 Date 类打算反映协调世界时 (UTC),但无法做到如此准确,这取决于 Java 虚拟机的主机环境。当前几乎所有操作系统都假定 1 天 = 24 × 60 × 60 = 86400 秒。但对于 UTC,大约每一两年出现一次额外的一秒,称为“闰秒”。闰秒始终作为当天的最后一秒增加,并且始终在 12 月 31 日或 6 月 30 日增加。例如,1995 年的最后一分钟是 61 秒,因为增加了闰秒。大多数计算机时钟不是特别的准确,因此不能反映闰秒的差别。 一些计算机标准是按照格林威治标准时 (GMT) 定义的,格林威治标准时和世界时 (UT) 是相等的。GMT 是标准的“民间”名称;UT 是相同标准的“科学”名称。UTC 和 UT 的区别是:UTC 是基于原子时钟的,UT 是基于天体观察的,两者在实际应用中难分轩轾。因为地球的旋转不是均匀的(它以复杂的方式减速和加速),所以 UT 始终不是均匀地流过。

       打印出当前时间,如果只是输出上面的d1对象的话,会打印出Thu May 16 21:53:44 CST 2013,这种格式的时间不太容易理解,于是就可以用格式化类DateFormat的子类SimpleDateFormat对上面的对象进行格式化后输出,public SimpleDateFormat(String pattern) 这是SimpleDateFormat的其中一个构造函数,其中pattern是传入的时间模式,时间模式对应字符如下图所示,

构造一个时间模式对象 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:ss:mm");  String s = sdf.format(d1);然后再输出s看到后的格式就是我们熟悉的日期:2013-05-16 21:53:44   。

        不过Date类中的许多方法和参数都已过时,如今建议用的是Calendar类,类是一个抽象类,它为特定瞬间与一组诸如 YEARMONTHDAY_OF_MONTHHOUR 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。

 

该类还为实现包范围外的具体日历系统提供了其他字段和方法。这些字段和方法被定义为 protectedCalendar 提供了一个类方法getInstance,以获得此类型的一个通用的对象。CalendargetInstance 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化:

     Calendar c = Calendar.getInstance();
类中提供了很到非常有用的方法,有单独获取年份、月份、日期等等一系列的方法,还有包括代表字段的常量值,简单的获取年份c.get(Calendar.YEAR)

也可以设置时间的偏移,像前减几天,向后加几天。如果想获取任意年份的2月有多少天,就可以用任意年份的3月1日减1,就会得到2月的最后一天的日期了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值