Java的Date类和Calendar

Date类和Calendar类是Java中两大代表时间的类

 

1.使用Date类代表当前系统时间

  

Date date = new Date();
 System.out.println(date);

  使用Date类的默认构造方法创建出来的对象就代表当前的时间,由于Date类覆盖了toString()方法。所以可以直接输出Date类型的对象,显示的结果如下:

  Sun Aug 28 10:23:06 CST 2016

  在该格式中,Sun代表Sunday(周日),Aug 代表August(八月),28代表288号,CST代表China Standard Time(中国标准时间,也就是北京时间(东八区))。

  • Date类(官方不再推荐使用,官方解释Date类不利于国际化,推荐使用Calendar类)

2.Calendar类:

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

该类还为实现包范围外的具体日历系统提供了其他字段和方法。这些字段和方法被定义为 protected

与其他语言环境敏感类一样,Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象。CalendargetInstance 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化:

     Calendar rightNow = Calendar.getInstance();

如果日历字段值中存在任何冲突,则 Calendar 将为最近设置的日历字段提供优先权。以下是日历字段的默认组合。将使用由最近设置的单个字段所确定的最近组合。

对于日期字段

 YEAR + MONTH + DAY_OF_MONTH
 YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK
 YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK
 YEAR + DAY_OF_YEAR
 YEAR + DAY_OF_WEEK + WEEK_OF_YEAR
 
对于时间字段
 HOUR_OF_DAY
 AM_PM + HOUR

注: 对于某些特别时间的解释可能会有某些歧义,可以用下列方式解决:

  1. 23:59 是一天中的最后一分钟,而 00:00 是下一天的第一分钟。因此,1999 年 12 月 31 日的 23:59 < 2000 年 1 月 1 日的 00:00。
  2. 尽管从历史上看不够精确,但午夜也属于 "am",,中午属于 "pm",所以在同一天,12:00 am ( 午夜 ) < 12:01 am,12:00 pm ( 中午 ) < 12:01 pm。

日期或时间格式字符串不是日历定义的一部分,因为在运行时,用户必须能够修改或重写它们。可以使用 DateFormat 格式化日期。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值