前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Web项目中愉快的使用Java8日期API

Web项目中愉快的使用Java8日期API

作者头像
三哥
发布2018-06-15 13:34:29
9980
发布2018-06-15 13:34:29
举报
文章被收录于专栏:java工会java工会

在Java8发布之前繁琐的日期API使我们不得不借助第三方的Jar包Joda来对日期进行操作,而Java8的日期java.time包则是由Joda的作者来进行操刀,我相信不管是因为Java8性能的提升、函数式编程、流、新的日期API的引入、还是开发者对新兴技术的热情拥抱,我们的新项目基本都是基于Java8开发了,而且因为Java良好的向后兼容性,我们老的项目升级为Java8也并非难事。

为了兼容历史版本,新的日期API没有选择直接在旧的Date上直接动刀,而是选择增加了LocalDate、LocalTime、LocalDateTime等新的类,并且提供了Date和LocalDateTime的互转

LocalDateTime转为Date
代码语言:javascript
复制
  //获取当前时间
  LocalDateTime now = LocalDateTime.now();  
  //获取当前系统所在的时区
  ZoneId zoneId = ZoneId.systemDefault();  
  //获取该时间点在该时区上的时间日期信息
  ZonedDateTime zonedDateTime = now.atZone(zoneId);  
  Date nowDate = Date.from(zonedDateTime.toInstant());
Date转为LocalDateTime
代码语言:javascript
复制
 Date date = new Date();

 Instant instant = date.toInstant();

 ZoneId zoneId = ZoneId.systemDefault();

关于时间加减LocalDateTime提供了plus和minus的各种方法,需要的时候根据提示找对应的API即可。

时间格式化
代码语言:javascript
复制
LocalDateTime now = LocalDateTime.now();

DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:ss:mm");
String format = df.format(now);
字符串解析
代码语言:javascript
复制
 DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:ss:mm");

 LocalDateTime date = LocalDateTime.from(df.parse("2017-10-11 22:22:22"));
SpringMVC

Spring4版本之后默认对JSR310提供支持,只需要在日期字段上加注解

代码语言:javascript
复制
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
Mybatis

mybatis中数据库字段对应的实体类时间也是默认使用Date类型不做改变,而是提供了针对jsr310的一个插件

代码语言:javascript
复制
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-typehandlers-jsr310</artifactId>
<version>xxx</version>
</dependency>

引入包之后不需要做任何改变,实体类为LocalDateTime等的字段就可以识别

SpringDataJPA

Spring的做法跟Mybatis的类似,使用一个Jsr310JpaConverters类来做转换,SpringBoot中只要在启动类上加注解即可:

代码语言:javascript
复制
@EntityScan(basePackageClasses = {Application.class,Jsr310JpaConverters.class})

作者:神奇一只猫 链接:https://www.jianshu.com/p/56a119395fcd

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java工会 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • LocalDateTime转为Date
  • Date转为LocalDateTime
  • 时间格式化
  • 字符串解析
  • SpringMVC
  • Mybatis
  • SpringDataJPA
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档