Date
题外话:
很喜欢这个类,总是让我想起,中学时代看小说的岁月,小说中,那些掌握时间能力的NB人物,Java中也有,虽说,不太一样吧。
1、开篇:
类包: java.util.Date
Date: 表示特定的瞬间,精确到毫秒。
毫秒概念: 1s = 1000ms
时间原点: 公元1970年1月1日,午夜0:00:00 毫秒值就是0
**时间和日期的计算:**必须依赖毫秒值
2、表示形式:
在所有可以接受或返回年、月、日期、小时、分钟和秒值的方法中,将使用下面的表示形式:
- 年份 y 由整数 y
- 1900
表示。 - 月份由从 0 至 11 的整数表示;0 是一月、1 是二月等等;因此 11 是十二月。
- 日期(一月中的某天)按通常方式由整数 1 至 31 表示。
- 小时由从 0 至 23 的整数表示。
- 分钟按通常方式由 0 至 59 的整数表示。
- 秒由 0 至 61 的整数表示;值 60 和 61 只对闰秒发生,尽管那样,也只用在实际正确跟踪闰秒的 Java 实现中。于按当前引入闰秒的方式,两个闰秒在同一分钟内发生是极不可能的,但此规范遵循 ISO C 的日期和时间约定。
3、主要构造方法:
public Date():
分配 Date
对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
public Date(Long date) :
分配 Date
对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
ps: 其他构造方法都过时了
4、常用方法:
方法名 | 说明 |
---|---|
public boolean equals(Object obj) | 比较两个日期的相等性 |
public int compareTo(Date anotherDate) | 比较两个日期的顺序 |
public long getTime( ) | 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数 |
public int hashCode( ) | 返回此对象的哈希码值 |
public void setTime( ) | 设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点 |
public String toString( ) | 将Date 对象转换为 String :dow mon dd hh:mm:ss zzz yyyy , |
其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat ) | |
public boolean after( Date When) | 测试此日期是否在指定日期之后 |
public boolean before( Date When) | 测试此日期是否在指定日期之前 |
public Object clone( ) | 返回此对象的副本 |
5、使用示例:
public static void main(String[] args) {
//创建Date对象
Date nowTime = new Date();
//输出当前时间
System.out.println("当前时间:"+nowTime);
//获取当前时间的毫秒值
long time = nowTime.getTime();
System.out.println("当前时间毫秒值:"+time);
//调用方法传入指定毫秒值,进行打印
nowTime.setTime(123456789);
System.out.println("修改毫秒值后的时间:"+nowTime);
}
结果如下: