JAVA中计算两个日期时间的差值竟然也有这么多门道( 五 )


hh
12小时制的时间显示,小时数,两位数,不满2位数字的前面补0
ss
秒数,不满2位的前面补0
s
秒数,不满2位的不补0
SSS
毫秒数
z
时区名称,比如北京时间东八区,则显示CST
Z
时区偏移信息,比如北京时间东八区,则显示+0800

JAVA中计算两个日期时间的差值竟然也有这么多门道

文章插图
 
消失的8小时问题日期字符串存入DB后差8小时在后端与数据库交互的时候,可能会遇到一个问题,就是往DB中存储了一个时间字段之后,后面再查询的时候,就会发现时间数值差了8个小时,这个需要在DB的连接信息中指定下时区信息:
spring.datasource.druid.url=jdbc:MySQL://127.0.0.1:3306/test?serverTimezone=Asia/Shanghai
JAVA中计算两个日期时间的差值竟然也有这么多门道

文章插图
 
界面时间与后台时间差8小时在有一些前后端交互的项目中,可能会遇到一个问题,就是前端选择并保存了一个时间信息,再查询的时候就会发现与设置的时间差了8个小时,这个其实就是后端时区转换设置的问题 。
SpringBoot的配置文件中,需要指定时间字符串转换的时区信息:
spring.jackson.time-zone=GMT+8这样从接口json中传递过来的时间信息,jackson框架可以根据对应时区转换为正确的Date数据进行处理 。
JAVA中计算两个日期时间的差值竟然也有这么多门道

文章插图
【JAVA中计算两个日期时间的差值竟然也有这么多门道】 


推荐阅读