java代码实现LocalDate转Date类型呢?
下文笔者讲述java代码实现LocalDate转Date的方法分享,如下所示
LocalDate转Date
实现思路: 1.需要先将LocalDate转为LocalDateTime LocalDate.atStartOfDay() 2.获取Instance,需要指定时区,这里使用系统默认 LocalDateTime.atZone(ZoneId.systemDefault()).toInstant() 3.转化 Date.from()转换
Date转LocalDate
new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDate()例:LocalDate转Date示例分享
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 比较两个日期对象是否相等
注意事项: JDK8之前 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); 获取指定的日期时间对象 LocalDateTime ldt = LocalDateTime.of(2022,2,22,18,32,56); System.out.println(ldt); //计算日期时间差java.time.Duration LocalDateTime today = LocalDateTime.now(); System.out.println(today); LocalDateTime changeDate = LocalDateTime.of(2022,2,22,18,32,56); 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());//两个时间差的纳秒数
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。