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());
posted on
浙公网安备 33010602011771号