Java设置jre通过java new Date()得到的时间的时区
2017-09-27 14:17
477 查看
1、前提
由于公司有印尼的项目,该项目仅对印尼当地开放使用(公司在国内,用的是阿里云的ECS,但是阿里云在印尼没有服务器,所以就买了新加坡的服务器),印尼当地人用的是东七区的时间,所以比国内东八区的时间早一个小时。一开始只是修改了阿里云ECS服务器的系统时间为东七区的时间,但是实际项目获取到的时间仍是东八区时间。
2、动手
因为之前已经修改了系统的时区为东七区,但是java程序获得的时间还是东八区的时间。查阅相关资料和问了开发的同事之后,做了如下修改:
1、修改修改/tomcat/bin/catalina.sh,添加如下的参数:
2、修改/etc/timezone文件
这个是因为我修改上面的操作之后运行java程序获取的时区还是东八区的,要获取东八区必须加指定参数”-Duser.timezone=GMT+7”,询问了开发之后,表示java程序是通过/etc/timezone文件获取时区的。
为此还专门写了一个java类来获取时间:
View Code
测试:
联系印尼方测试成功!!!
由于公司有印尼的项目,该项目仅对印尼当地开放使用(公司在国内,用的是阿里云的ECS,但是阿里云在印尼没有服务器,所以就买了新加坡的服务器),印尼当地人用的是东七区的时间,所以比国内东八区的时间早一个小时。一开始只是修改了阿里云ECS服务器的系统时间为东七区的时间,但是实际项目获取到的时间仍是东八区时间。
2、动手
因为之前已经修改了系统的时区为东七区,但是java程序获得的时间还是东八区的时间。查阅相关资料和问了开发的同事之后,做了如下修改:
1、修改修改/tomcat/bin/catalina.sh,添加如下的参数:
JAVA_OPTS="$JAVA_OPTS -Duser.timezone=GMT+7" #在东几区就+几
2、修改/etc/timezone文件
这个是因为我修改上面的操作之后运行java程序获取的时区还是东八区的,要获取东八区必须加指定参数”-Duser.timezone=GMT+7”,询问了开发之后,表示java程序是通过/etc/timezone文件获取时区的。
cat /etc/timezone Asia/Jakarta
为此还专门写了一个java类来获取时间:
import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.TimeZone; public class Test { public static void main(String[] a) { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 System.out.println(df.format(new Date()));// new Date()为获取当前系统时间 Calendar cal = Calendar.getInstance(); TimeZone timeZone = cal.getTimeZone(); System.out.println(timeZone.getID()); System.out.println(timeZone.getDisplayName()); } }
View Code
测试:
[root@iZt4nbfbkurxm1k2bmdsqvZ bin]# javac Test.java [root@iZt4nbfbkurxm1k2bmdsqvZ bin]# java Test 2017-09-27 13:15:45 Asia/Jakarta West Indonesia Time [root@iZt4nbfbkurxm1k2bmdsqvZ bin]#
联系印尼方测试成功!!!
相关文章推荐
- Java通过new Date() 得到的时间与系统时间差N个小时的解决办法
- Java通过new Date() 得到的时间与系统时间差N个小时的解决办法
- Java通过new Date() 得到的时间与系统时间差N个小时的解决办法
- Java通过new Date() 得到的时间与系统时间差N个小时的解决办法
- Java通过new Date() 得到的时间与系统时间差N个小时的解决办法
- java new Date()得到的时间和系统时间不一样
- java new Date()得到的时间和系统时间不一样
- java使用new Date()和System.currentTimeMillis()获取当前时间戳
- java new date 结果与操作系统时间相差8小时处理解决方法
- java方法,返回两个日期内的所有date集合,根据开始时间、结束时间得到两个时间段内所有的日期
- JAVA设置SimpleDateFormat函数时区
- Java中SimpleDateFormat用法详解-日期时间格式设置
- 如何通过Java设置Linux的系统时间
- 在页面加载完成后通过jquery给多个span赋html值(当前系统时间本地格式化new Date().toLocaleDateString(); )
- java通过当前时间得到上个月时间
- java方法,返回两个日期内的所有date集合,根据开始时间、结束时间得到两个时间段内所有的日期
- java 通过DateFormat获取时间
- java new Date 获取时间 与系统不一致
- ubuntu linux 如何用命令行设置日期时间 date 和默认时区
- Java中通过SimpleDateFormat格式化当前时间:/** 输出格式:20060101010101001**/