Date类表示特定的时刻,精度为毫秒。
在JDK 1.1之前, Date类还有两个附加功能。 它允许将日期解释为年,月,日,小时,分钟和秒值。 它还允许格式化和解析日期字符串。 不幸的是,这些功能的API不适合国际化。 从JDK 1.1开始, Calendar类应该用于在日期和时间字段之间进行转换,而DateFormat类应该用于格式化和解析日期字符串。 不推荐使用Date中的相应方法。
Date类
构造方法:过时方法不列举
| 构造器 | 描述 | 
|---|---|
| Date() | 分配  Date对象并对其进行初始化,使其表示分配时间,测量Date到毫秒。 | 
| Date?(long date) | 分配  Date对象并初始化它以表示自标准基准时间(称为“纪元”)以来的指定毫秒数,即1970年1月1日00:00:00 GMT。 | 
方法:
| 和类型 | 方法 | 描述 | 
|---|---|---|
| boolean | after?(Date when) | 测试此日期是否在指定日期之后。 | 
| boolean | before?(Date when) | 测试此日期是否在指定日期之前。 | 
| Object | clone() | 返回此对象的副本。 | 
| int | compareTo?(Date anotherDate) | 比较两个日期的订购。 | 
| boolean | equals?(Object obj) | 比较两个相等的日期。 | 
| static Date | from?(Instant instant) | 从  Instant对象获得Date的实例。 | 
| long | getTime() | 返回自此  Date对象表示的1970年1月1日00:00:00 GMT以来的毫秒数。 | 
| int | hashCode() | 返回此对象的哈希码值。 | 
| void | setTime?(long time) | 将此  Date对象设置为表示格林尼治标准时间1970年1月1日00:00:00之后的time毫秒的时间点。 | 
| Instant | toInstant() | 将此  Date对象转换为Instant。 | 
| String | toString() | 将此  Date对象转换为以下形式的String: | 
格式化和解析日期字符串
SimpleDateFormat:
SimpleDateFormat是一个用于以区域设置敏感的方式格式化和解析日期的具体类。 它允许格式化(日期→文本),解析(文本→日期)和规范化。常用构造方法:
| SimpleDateFormat?(String pattern) | 构造一个  SimpleDateFormat使用给定的模式和默认的默认日期格式符号FORMAT区域设置。 | 
|---|
日期指定字符:
yyyy 年 MM 月 dd日 h 12小时制 H 24小时制0-23 ss秒 SSS毫秒
例:SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
方法:常用
| 变量和类型 | 方法 | 描述 | 
|---|---|---|
| StringBuffer | format?(Date date, StringBuffer toAppendTo, FieldPosition pos) | 将给定的  Date为日期/时间字符串,并将结果附加到给定的StringBuffer。 | 
| Date | parse?(String text, ParsePosition pos) | 解析字符串中的文本以生成  Date。 | 
Calender
Calendar提供了一个类方法getInstance ,用于获取此类型的通用对象。 Calendar的getInstance方法返回一个Calendar对象,其日历字段已使用当前日期和时间初始化:
Calendar calendar= Calendar.getInstance();
方法:
| 变量和类型 | 方法 | 描述 | 
|---|---|---|
| abstract void | add?(int field, int amount) | 根据日历的规则,将指定的时间量添加或减去给定的日历字段。 | 
| boolean | after?(Object when) | 返回此  Calendar是否表示指定的Object表示的时间之后的时间。 | 
| boolean | before?(Object when) | 返回此  Calendar是否表示指定的Object代表的时间之前的时间。 | 
| void | clear() | 设置此  Calendar未定义的所有日历字段值和时间值(距离 Epoch的毫秒偏移量)。 | 
| void | clear?(int field) | 设置此  Calendar未定义的给定日历字段值和时间值(距离 Epoch的毫秒偏移量)。 | 
| Object | clone() | 创建并返回此对象的副本。 | 
| int | compareTo?(Calendar anotherCalendar) | 比较两个  Calendar对象表示的时间值(从 Epoch开始的毫秒偏移)。 | 
| boolean | equals?(Object obj) | 将此  Calendar与指定的Object。 | 
| static Calendar | getInstance() | 使用默认时区和区域设置获取日历。 | 
| Date | getTime() | |
| int |  | 返回给定日历字段的值。  | 
| void | set?(int year, int month, int date) | 设置日历字段的值  YEAR,MONTH和DAY_OF_MONTH。 | 
| void | set?(int year, int month, int date, int hourOfDay, int minute) | 设置日历字段的值  YEAR,MONTH,DAY_OF_MONTH,HOUR_OF_DAY和MINUTE。 | 
| void | set?(int year, int month, int date, int hourOfDay, int minute, int second) | 设置字段中的值  YEAR,MONTH,DAY_OF_MONTH,HOUR_OF_DAY,MINUTE和SECOND。 | 
| void | setTime?(Date date) | 使用给定的  Date设置此日历的时间。 | 
| String | toString() | 返回此日历的字符串表示形式。  | 
例:
Calendar calendar = new Calendar(); //使用Date类设置calendar时间 calendar.setTime(new Date()); //设置时间 月份为0-11 calendar.set(Calendar.YEAR, 2021); calendar.set(Calendar.MONTH, 1); calendar.set(Calendar.DAY_OF_MONTH, 7); //返回一个Date对象 System.out.println(calendar.getTime().toString()); //使用日历取得时间偏移 calendar.add(Calendar.YEAR, 10); System.out.println(calendar.getTime().toString());
原文:https://www.cnblogs.com/yi-ji/p/14483310.html