无名阁,只为技术而生。流水不争先,争的是滔滔不绝。

java:实现localdate转date的方法

Java dancy 1年前 (2023-12-01) 221次浏览 已收录 0个评论 扫描二维码
java:实现localdate转date的方法

本节分享一下localdate转date的方法,希望给你的学习或工作带来帮助。

1.localdate转date前,需要先将LocalDate转为LocalDateTime

LocalDate.atStartOfDay()

2. 获取 Instance,需要指定时区,这里使用系统默认

 LocalDateTime.atZone(ZoneId.systemDefault()).toInstant()

3.转化 Date.from()

连起来就是

Date.from(LocalDate.now().atStartOfDay().atZone(ZoneId.systemDefault()).toInstant())
Date转LocalDate
new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDate()

以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 比较两个日期对象是否相等

日期时间格式化:

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);

获取指定的日期时间对象:

 LocalDateTime ldt = LocalDateTime.of(2020, 11, 11, 8, 20, 30); System.out.println(ldt);

计算日期时间差

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());//两个时间差的纳秒数

jdk收费了吗 从哪个版本 有什么影响?(图文详解1)

喜欢 (0)
[]
分享 (0)
关于作者:
发表我的评论
取消评论

评论审核已启用。您的评论可能需要一段时间后才能被显示。

表情 贴图 加粗 删除线 居中 斜体 签到