当前位置: 首页 >Java技术 > 【Java】【问题记录】 解决通过new Date()方法获取时间与当前时间时区不一致问题

【Java】【问题记录】 解决通过new Date()方法获取时间与当前时间时区不一致问题

问题出现原因

项目部署到linux服务器,通过new Date()获取时间和在windows本地时间不一致,通过排查问题,发现是new Date()的问题

linux系统上通过new Date()获取的时间是世界时间(UTC时间)所以在获取时间时需要对时间进行时区的处理操作

方案一:springboot项目在主启动类中通过注解@PostConstruct解决

public static void main(String[] args) {SpringApplication.run(Application.class, args);}/** *  解决通过 new Date()获取时间不一致问题,解决发送审批时间早8八个小时问题 * @PostConstruct 是java的注解,被用来修饰一个非静态非静态的void()方法, *是一种JSR-250的规范,当bean创建完成的时候,会后置执行@PostConstruct修  饰的方法 *  spring中@PostConstruct 在Bean初始化中的执行顺序 *Constructor(构造方法) -> @Autowired(依赖注入) -> @PostConstruct(注释  的方法) */@PostConstructvoid started() {TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));}

方案二:在通过new Date()获取时间后,将时间设置成东八区时间

Date date=new Date();SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置成东八区时间dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));

作者:刘晓伟-liu
来源链接:https://blog.csdn.net/dopdkfsds/article/details/114687238

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/java/68893.html

分享给朋友:

“【Java】【问题记录】 解决通过new Date()方法获取时间与当前时间时区不一致问题” 的相关文章

Java IO 之 OutputStream源码 2022年05月28日 23:45:56
java泛型通配符详解 2022年05月30日 20:59:10
【JAVA】浅谈java枚举类 2022年05月30日 23:09:24
实现一个Java五子棋 2022年05月31日 20:34:57
java中的内存模型 2022年06月01日 20:04:23
Java NIO之Selector(选择器) 2022年06月01日 22:00:38
Java文件操作大全 2022年06月02日 20:27:01
Java Web 学习路线 2022年06月02日 21:17:30