开发者社区> 问答> 正文

java new date() 和从数据库中获取到固定时间少13小时

java项目中有两个获取时间的参数,一个是从数据库字段中拿到获取到的时间,一个是获取系统时间(项目部署在linux系统),获取到的时间均有误(从数据库中拿到的时间通过在catalina.sh文件中添加:JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF8 -Duser.timezone=CST "

后恢复正常如图(图2中下单时间列那个时间是从数据库中获取的,经过调整后可以恢复,但是如果将图1中的JAVA_OPTS选项注释,将会回到异常状态)

1

但是获取到的系统时间还是少13小时,总的来说,如果添加图1中的JAVA_OPTS选项,调用的系统时间将会少13小时,如果取消那个选项,从数据库中读取到的固定时间将会少13小时),同时linux系统时间正常(上海时间),bios时间正常,同时,在测试机器上,保证tomcat版本,jdk版本,一致的情况下,另外一台阿里云测试机器是完全没有问题的。2

展开
收起
xiaodai12138 2018-07-10 18:20:52 8052 0
2 条回答
写回答
取消 提交回答
  • 推荐回答:

    你服务器的东八区时间对不对,先timedatectl 命令看看服务器时间是不是相差八小时,然后在 timedatectl set-timezone Asia/Shanghai

    官方帮助文档地址:阿里云帮助中心

    更多参考: 阿里云官方(新用户需官网注册查看)

    2021-04-26 22:29:53
    赞同 展开评论 打赏
  • 努力在努力

    你服务器的东八区时间对不对,先timedatectl 命令看看服务器时间是不是相差八小时,然后在 timedatectl set-timezone Asia/Shanghai

    2019-07-17 22:46:58
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载