linux下为java设置正确的时区
2016-08-18 20:13
162 查看
公司新装的测试环境,发现报表上显示的时间比正常时间差了8个小时,检查了一下系统时间,发现设置完全正确,这就很奇怪了;
后来想到因为系统中使用的时间类型是timestamp类型,所以会有时区的问题,当时区设置有问题的时候就会发生查看当前时间设置正确,但是时间怎么也对不上的情况;
于是到网上查询如何设置时区,走了一些弯路,在此总结一下:
方法一
在 tomcat的jvm 运行参数加上 -Duser.timezone=GMT+8 ;
设置好后,就会忽略系统设置的时区,这种方法虽然简单直接,但是却不是一种好的方式,要从根源上解决问题!
方法二
映射时区文件/etc/localtime
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
或
cp /usr/share/zoneinfo/Asia/Shanghai/etc/localtime
java获取时区读取的就是/etc/localtime这个文件(准确的说应该是hotspot jvm,openjdk不起作用,要用方法一);
删了/etc/localtime,java时区就变成了GMT,软链接到指定时区后,java时区就是localtime指定的时区;
以下方法个人亲测针对hotspot jvm不管用(也许针对openjdk 虚拟机起作用);有没有/etc/sysconfig/clock这个文件,不会对jvm有任何影响,但是应该会对计算机关闭启动的时间有影响;
在TOMCAT的JAVA运行参数添加 -Duser.timezone=Asia/Shanghai或者,如果有启动的定时器或首次执行的代码,可以使用语句
System.setProperty("user.timezone","Asia/Shanghai");来设置
但是为解决时区问题,这样编码实在太烦,所以你要知道如何从根本上解决问题:
LINUX下:jre是从/etc/sysconfig/clock这个文件中获取时区信息的,修改次文件即可,没有的话添加一个。
附clock文件内容:
ZONE="Asia/Shanghai"
UTC=false
ARC=false
后来想到因为系统中使用的时间类型是timestamp类型,所以会有时区的问题,当时区设置有问题的时候就会发生查看当前时间设置正确,但是时间怎么也对不上的情况;
于是到网上查询如何设置时区,走了一些弯路,在此总结一下:
方法一
在 tomcat的jvm 运行参数加上 -Duser.timezone=GMT+8 ;
设置好后,就会忽略系统设置的时区,这种方法虽然简单直接,但是却不是一种好的方式,要从根源上解决问题!
方法二
映射时区文件/etc/localtime
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
或
cp /usr/share/zoneinfo/Asia/Shanghai/etc/localtime
java获取时区读取的就是/etc/localtime这个文件(准确的说应该是hotspot jvm,openjdk不起作用,要用方法一);
删了/etc/localtime,java时区就变成了GMT,软链接到指定时区后,java时区就是localtime指定的时区;
以下方法个人亲测针对hotspot jvm不管用(也许针对openjdk 虚拟机起作用);有没有/etc/sysconfig/clock这个文件,不会对jvm有任何影响,但是应该会对计算机关闭启动的时间有影响;
在TOMCAT的JAVA运行参数添加 -Duser.timezone=Asia/Shanghai或者,如果有启动的定时器或首次执行的代码,可以使用语句
System.setProperty("user.timezone","Asia/Shanghai");来设置
但是为解决时区问题,这样编码实在太烦,所以你要知道如何从根本上解决问题:
LINUX下:jre是从/etc/sysconfig/clock这个文件中获取时区信息的,修改次文件即可,没有的话添加一个。
附clock文件内容:
ZONE="Asia/Shanghai"
UTC=false
ARC=false
相关文章推荐
- 关于在linux平台上使用java.awt.*包的设置
- linux下java环境变量的设置
- Linux Ubuntu设置Java环境变量
- 3、java设置Linux系统时间之 正则表达式解析时间 及总结
- 2、java设置Linux系统时间之 setDate.sh
- 安全设置运行 Java 服务的 Linux [转载]
- Java5/6中的字体自定义设置与美化(Linux/Windows)【z】
- 使用Java Service Wrapper设置tomcat作为linux服务并且开机自动启动
- 强化Linux安全 正确设置从零开始
- [转帖] Java5/6中的字体自定义设置与美化(Linux/Windows)
- 在Linux下Jdk的安装和Java环境变量的设置[转载]
- Java5/6中的字体自定义设置与美化(Linux/Windows)
- linux下安装JDE及设置JAVA_HOME环境变量
- linux下java环境变量的设置方法大全
- Linux 下 Java 中文环境设置方法
- 设置或修改linux时区,日期,时间
- Linux下设置Java环境变量
- 在Linux下Jdk的安装和Java环境变量的设置
- VMware中Linux系统时间与主机同步以及时区设置
- 启动Tomcat时候JavaHome设置不正确产生的错误