1.需要先将LocalDate转为LocalDateTime
LocalDate.atStartOfDay()
2. 获取 Instance,需要指定时区,这里使用系统默认
LocalDateTime.atZone(ZoneId.systemDefault()).toInstant()
3.Date.from()将LocalDate转化为Date
Date.from(LocalDate.now().atStartOfDay().atZone(ZoneId.systemDefault()).toInstant())
4.Date().toInstant()将Date转为LocalDate
new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDate()
5.LocalDate具体使用
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 比较两个日期对象是否相等
6.日期时间格式化
DK8之前:SimpleDateFormat来进行格式化,但SimpleDateFormat并不不是线程安全的
JDK8之后:引入线程安全的日期与时间DateTimeFormatter
LocalDateTime ldt = LocalDateTime.now(); System.out.println(ldt); DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String ldtStr = dtf.format(ldt); System.out.println(ldtStr);
7.获取指定的日期时间对象
LocalDateTime ldt = LocalDateTime.of(2020, 11, 11, 8, 20, 30); System.out.println(ldt);
8.计算日期时间差java.time.Duration
LocalDateTime today = LocalDateTime.now(); System.out.println(today); LocalDateTime changeDate = LocalDateTime.of(2020,10,1,10,40,30); System.out.println(changeDate); Duration duration = Duration.between( today,changeDate);//第二个参数减第一个参数 System.out.println(duration.toDays());//两个时间差的天数 System.out.println(duration.toHours());//两个时间差的小时数 System.out.println(duration.toMinutes());//两个时间差的分钟数 System.out.println(duration.toMillis());//两个时间差的毫秒数 System.out.println(duration.toNanos());//两个时间差的纳秒
0条评论
点击登录参与评论