前言:
在jdk8以后,出现了更多好用的时间相关的api,整理下使用心得。打好基础,daydayup!
jdk8以前使用的时间api可以看这篇:
java常用应用程序编程接口(API)——Date,SimpleDateFormat,Calendar概述
LocalDateTime,LocalDate,LocalTime
LocalDate:代表本地日期(年,月,日,星期)
LocalTime:代表本地时间(时,分,秒,纳秒)
LocalDateTime:代表本地日期,时间(年,月,日,星期,时,分,秒,纳秒)
使用方式:
使用方法:public static Xxxx now(); (获取系统当前时间对应的该对象)
例:如下
常用方法:
LocalDate:
方法名 | 说明 |
public int getYear() | 获取年 |
public int getMonthValue() | 获取月份 |
public int getDayOfMonth() | 获取日 |
public int getDayOfYear() | 获取当前是一年中的第几天 |
public DayOfWeek getDayOfWeek() | 获取星期几 |
public static LocalTime of(...) | 获取指定的对象 |
withYear,withMonth,withDayOfMonth,withDayOfYear | 修改信息,返回新日期对象 |
plusYears,plusMonths,plusDays,plusWeeks | 把某个信息加多少,返回新日期对象 |
minusYears,minusMonths,minusDays,minusWeeks | 把某个信息减多少,返回新日期对象 |
equals,isBefore,isAfter | 判断2个日期对象,是否相等,在前还是在后 |
例:
LocalTime:
方法名 | 说明 |
public int getHour() | 获取小时 |
public int getMinute() | 获取分 |
public int getSecond() | 获取秒 |
public int getNano() | 获取纳秒 |
public static LocalTime of(...) | 获取指定的对象 |
withHour,withMinute,withSecond,withNano | 修改时间,返回新时间对象 |
plusHours,plusMinutes,plusSecond,plusNanos | 把某个信息加多少,返回新时间对象 |
minusHours,minusMinutes,minusSecond,minusNanos | 把某个信息减多少,返回新时间对象 |
equals,isBefore,isAfter | 判断2个时间对象,是否相等,在前还是在后 |
例:
LocalDateTime:
方法名 | 说明 |
public static LocalTime of(...) | 获取指定的对象 |
getYear,getMonthValue,getDayOfMonth,getDayOfYear,getHour,getMinute,getSecond,getNano | 获取年月日,时分秒,纳秒等 |
withYear,withMonth,withDayOfMonth,withDayOfYear,withHour,withMinute,withSecond,withNano | 修改时间,返回新日期时间对象 |
plusYears,plusMonths,plusDays,plusWeeks,plusHours,plusMinutes,plusSecond,plusNanos | 把某个信息加多少,返回新日期时间对象 |
minusYears,minusMonths,minusDays,minusWeeks,minusHours,minusMinutes,minusSecond,minusNanos | 把某个信息减多少,返回新日期时间对象 |
equals,isBefore,isAfter | 判断2个日期时间对象,是否相等,在前还是在后 |
例:
ZoneId,ZonedDateTime
ZoneId代表时区,ZonedDateTime代表时区时间
常见方法:
ZoneId:
方法 | 说明 |
public static Set<String>getAvailableZonelds() | 获取java中支持的时区 |
public static Zoneld systemDefault() | 获取系统默认时区 |
public static Zoneld of(String zoneld) | 获取一个指定时区 |
ZonedDateTime:
方法名 | 说明 |
public static ZonedDateTime now() | 获取当前时区的ZonedDateTime对象 |
public static ZonedDateTime now(Zoneld zone) | 获取指定时区的ZonedDateTime对象 |
getYear,getMonthValue,getDayOfMonth,getDayOfYear,getHour,getMinute,getSecond,getNano | 获取年月日,时分秒,纳秒等 |
public ZonedDateTime withXxx(时间) | 修改时间系列的方法 |
public ZonedDateTime minusXxx(时间) | 减少时间系列的方法 |
public ZonedDateTime plusXxx(时间) | 增加时间系列的方法 |
总结:
jdk8之前用Calendar,jdk8以后用LocalDateTime,LocalDate,LocalTime,ZoneId,ZonedDateTime,因为不仅可以精确到纳秒,还可以在改变对象时间时,生成新的对象,不会直接覆盖原来的对象。整理结束,撒花!!!