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 ,用于获取此类型的通用对象。 CalendargetInstance方法返回一个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()
返回一个 Date对象,表示此 Calendar的时间值(距离 Epoch的毫秒偏移量)。
int get​(int field)
返回给定日历字段的值。 
void set​(int year, int month, int date)
设置日历字段的值 YEARMONTHDAY_OF_MONTH
void set​(int year, int month, int date, int hourOfDay, int minute)
设置日历字段的值 YEARMONTHDAY_OF_MONTHHOUR_OF_DAYMINUTE
void set​(int year, int month, int date, int hourOfDay, int minute, int second)
设置字段中的值 YEARMONTHDAY_OF_MONTHHOUR_OF_DAYMINUTESECOND
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());

 

 posted on 2021-03-06 21:18  一计  阅读(34)  评论(0)    收藏  举报