Calendar是一个抽象类,不能直接创建对象,需要用静态方法获取对象。Calendar c = Calendar.getInstance();
常用方法:
方法名
返回类型
说明
getTime()
Date
获取日期对象
setTime(Date date)
void
给日历设置日期对象
getTimeInMillis()
long
拿到时间毫秒值
setTimeInMillis(long millis)
void
给日历设置时间毫秒值
get(int field)
int
获取日历中某个字段信息
set(int field, int value)
void
修改日历中某个字段信息
add(int field, int amount)
void
为某个字段增加/减少指定的值
注意事项:
日历类中月份范围:0~11
日历类中一周的第一天是星期日。
四、ZoneId
ZoneId 表示时区。
常用方法(都是静态方法):
方法名
返回类型
说明
getAvailableZoneIds()
Set<String>
获取Java中支持的所有时区
systemDefault()
ZoneId
获取系统默认时区
of(String zoneId)
ZoneId
获取一个指定时区(字符串转ZoneId对象)
五、Instant
Instant 表示时间戳。
常用方法:
方法名
返回类型
说明
now()
Instant
获取当前时间的Instant对象(标准时间)
ofXXX(long epochMilli)
Instant
根据(秒/毫秒/纳秒)获取Instant对象
atZone(ZoneId zone)
ZoneDateTime
指定时区
isXXX(Instant otherInstant)
boolean
判断时间的一系列方法
minusXXX(long millisToSubtract)
Instant
减少时间的一系列方法
plusXXX(long millisToSubtract)
Instant
增加时间的一系列方法
示例:
packageday17.Instant;importjava.time.Instant;importjava.time.ZoneId;importjava.time.ZonedDateTime;publicclassDemo1{publicstaticvoidmain(String[] args){System.out.println("----获取当前时间----");Instant now =Instant.now();System.out.println(now);System.out.println("\n----根据(秒/毫秒/纳秒)获取Instant对象----");Instant second =Instant.ofEpochSecond(0L);Instant milli =Instant.ofEpochMilli(1L);Instant nano =Instant.ofEpochSecond(1L,10000000000L);System.out.println(second);System.out.println(milli);System.out.println(nano);System.out.println("\n----指定时区----");ZonedDateTime zonedDateTime =Instant.now().atZone(ZoneId.systemDefault());System.out.println(zonedDateTime);System.out.println("\n----isXXX判断----");boolean after = second.isAfter(nano);System.out.println(after);System.out.println("\n----minusXXX减少时间----");Instant minusSeconds = nano.minusSeconds(111);System.out.println(minusSeconds);}}
六、ZoneDateTime
ZoneDateTime 表示带时区的时间。
常用方法:
方法名
返回类型
说明
now()
ZoneDateTime
获取当前时间的ZoneDateTime对象
ofXXX(…)
ZoneDateTime
获取指定时间的ZoneDateTime对象
withXXX(时间)
ZoneDateTime
修改时间的一系列方法
minus(时间)
ZoneDateTime
减少时间的一系列方法
plus(时间)
ZoneDateTime
增加时间的一系列方法
七、DateTimeFormatter
DateTimeFormatter 用于时间的格式化和解析
常用方法:
方法名
返回类型
说明
ofPattern()
DateTimeFormatter
获取格式化对象
format(时间对象)
String
按照指定方式格式化时间
importjava.time.ZonedDateTime;importjava.time.format.DateTimeFormatter;publicclassDemo1{publicstaticvoidmain(String[] args){// 获取时间对象ZonedDateTime now =ZonedDateTime.now();System.out.println(now);// 获取格式化对象DateTimeFormatter dtf =DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss E a");String result = dtf.format(now);System.out.println(result);}}