java8时间操作
文章目录1. 时间操作类2. 常见API3. 日期时间格式化4. 获得指定的日期5. 计算日期时间差java.time.Duration1. 时间操作类LocalDate:不包含具体时间的日期。LocalTime:不含日期的时间。LocalDateTime:包含日期及时间。2. 常见APILocalDate today = LocalDate.now();System.out.println("今
·
1. 时间操作类
LocalDate:不包含具体时间的日期。
LocalTime:不含日期的时间。
LocalDateTime:包含日期及时间。
2. 常见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));
3. 日期时间格式化
jdk8之前,使用SimpleDateFormat来进行格式化操作,但是它并不是线程安全的。
jdk8之后,我们引入线程安全的DateTimeFormatter来格式化时间
LocalDateTime localDateTime = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
System.out.println(formatter.format(localDateTime));
4. 获得指定的日期
LocalDateTime ldt = LocalDateTime.of(2020, 8, 4, 10, 20, 30);
System.out.println(ldt);
5. 计算日期时间差java.time.Duration
LocalDateTime nowTime = LocalDateTime.now();
LocalDateTime changeTime = nowTime.plusDays(1);
Duration duration = Duration.between(nowTime, changeTime);
System.out.println(duration.toDays());
而是用LocalDateTime就没有这个问题:
LocalDateTime now = LocalDateTime.now();
Duration duration = Duration.between(now, now);
// 0
System.out.println(duration.toDays());
所以我们可以使用atStartOfDay()方法将LocalDate转化为LocalDateTime进行计算
LocalDate now = LocalDate.now();
Duration duration = Duration.between(now.atStartOfDay(), now.atStartOfDay());
// 0
System.out.println(duration.toDays());
更多推荐



所有评论(0)