JAVA date 日常使用总结

主要使用 LocalDateTime 和 LocalDate

LocalDate : 只是到日期

LocalDateTime :包含dateTime 但是格式化中没有通用的 如 2020-01-07 18:00:01 格式的

格式转换的 DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")

1. 转换为 yyyy-MM-dd String

格式是 : 2020-01-07

// 1. 当前时间的
LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));

// 2. 固定时间的
String parseDateStr  = "2020-01-07";
String fixDateFormat = LocalDate.parse(parseDateStr).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));

思路 先转换为 LocalDate 再转换为 string

同样使用于 yyyy-MM-dd HH:mm:ss

LocalDate 可以 parse 任意类型
 String  str     = "2017-11-21 14:41:06:612";
 DateTimeFormatter fmt  = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss:SSS");
 String  fixDateTimeStr = LocalDate.parse(str,fmt).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));

2. 转换为 yyyy-MM-dd HH:mm:ss String

格式是 : 2020-01-07 18:00:01

// 获取当前时间的年月日 时分秒
 String formatDateTimeStr = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

// 获取固定时间的 年月日 时分秒

String formatDateStr = "2019-10-12";
String startOfDay = LocalDate.parse(formatDateStr).atTime(LocalTime.MIN)
  .format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
String endOfDay = LocalDate.parse(formatDateStr).atTime(LocalTime.MAX)
  .format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

通过 atTime 转换为 LocalDateTime

str + " 00:00:00"

3. 转换为 date

LocalDate nowLocalDate = LocalDate.now();
Date date = Date.from(localDate.atStartOfDay(ZoneOffset.ofHours(8)).toInstant());

LocalDate nowLocalDate = LocalDate.now();
Date date = Date.from(nowLocalDate.atStartOfDay(ZoneOffset.ofHours(8)).toInstant());

4. 修改时间

LocalDateTime.now().plusDays(2).withHour(23);

或者比较差值

LocalDateTime localDateTime01 = LocalDateTime.of(2019, 6, 18, 12, 0);
LocalDateTime localDateTime02 = LocalDateTime.of(2019, 6, 1, 12, 0);

System.out.println(localDateTime01.isAfter(localDateTime02));   // 类似的,还有 isBefore 等方法

LocalDateTime localDateTime03 = LocalDateTime.of(2019, 6, 18, 12, 0);
LocalDateTime localDateTime04 = LocalDateTime.of(2019, 6, 18, 13, 0);

Duration duration = Duration.between(localDateTime03, localDateTime04);

原文 

https://segmentfault.com/a/1190000021553626

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » JAVA date 日常使用总结

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址