简介:讲解jdk8之后处理时间的api
- 时间处理再熟悉不过,SimpleDateFormat,Calendar等类 旧版缺点:java.util.Date 是非线程安全的 API设计比较差,日期/时间对象比较,加减麻烦
- Java 8通过发布新的Date-Time API (JSR 310)来进一步加强对日期与时间的处理
- 新增了很多常见的api,如日期/时间的比较,加减,格式化等
- 包所在位置 java.time
- 核心类
LocalDate:不包含具体时间的日期。
LocalTime:不含日期的时间。
LocalDateTime:包含了日期及时间。
- LocalDate 常用API
LocalDate today = LocalDate.now();
System.out.println("今天日期:" + today);
//获取年,月,日,周几
System.out.println("现在是哪年:"+today.getYear());
System.out.println("现在是哪月:"+today.getMonth());
System.out.println("现在是哪月(数字):"+today.getMonthValue());
System.out.println("现在是几号:"+today.getDayOfMonth());
System.out.println("现在是周几:"+today.getDayOfWeek());
//加减年份, 加后返回的对象才是修改后的, 旧的依旧是旧的
LocalDate changeDate = today.plusYears(1);
System.out.println("加后是哪年:"+changeDate.getYear());
System.out.println("旧的是哪年:"+today.getYear());
//日期比较
System.out.println("isAfter: "+changeDate.isAfter(today));
//getYear() int 获取当前日期的年份
//getMonth() Month 获取当前日期的月份对象
//getMonthValue() int 获取当前日期是第几月
//getDayOfWeek() DayOfWeek 表示该对象表示的日期是星期几
//getDayOfMonth() int 表示该对象表示的日期是这个月第几天
//getDayOfYear() int 表示该对象表示的日期是今年第几天
//withYear(int year) LocalDate 修改当前对象的年份
//withMonth(int month) LocalDate 修改当前对象的月份
//withDayOfMonth(int dayOfMonth) LocalDate 修改当前对象在当月的日期
//plusYears(long yearsToAdd) LocalDate 当前对象增加指定的年份数
//plusMonths(long monthsToAdd) LocalDate 当前对象增加指定的月份数
//plusWeeks(long weeksToAdd) LocalDate 当前对象增加指定的周数
//plusDays(long daysToAdd) LocalDate 当前对象增加指定的天数
//minusYears(long yearsToSubtract) LocalDate 当前对象减去指定的年数
//minusMonths(long monthsToSubtract) LocalDate 当前对象减去注定的月数
//minusWeeks(long weeksToSubtract) LocalDate 当前对象减去指定的周数
//minusDays(long daysToSubtract) LocalDate 当前对象减去指定的天数
//compareTo(ChronoLocalDate other) int 比较当前对象和other对象在时间上的大小,返回值如果为正,则当前对象时间较晚,
//isBefore(ChronoLocalDate other) boolean 比较当前对象日期是否在other对象日期之前
//isAfter(ChronoLocalDate other) boolean 比较当前对象日期是否在other对象日期之后
//isEqual(ChronoLocalDate other) boolean 比较两个日期对象是否相等
- LocalTime 常用API
- LocalDateTime 常用API