说起java中的时间,大家或许都很熟悉,朗朗上口的Date、Calendar、SimpleDateFormat等。但是大家对他们的认识真的很深刻吗?今天我要想大家说的是TimeZone,即时区。
经常有人发现时间不对,比如相差8个小时等等,其真实原因便是TimeZone.只有正确合理的运用TimeZone,才能保证系统时间无论何时都是准确的。
一、影响TimeZone的因素:
1、操作系统的时区设置,TZ环境变量设置。
2、数据传输时时区设置。
3、代码中调用TimeZone.setDefault()
4、JVM参数user.timezone,例如-Duser.timezone=
5、根据JVM参数中的user.country和java.home自动选择
第一个原因其实是根本原因,当数据在不同操作系统间流转时,就有可能因为操作系统的差异造成时间偏差,而JVM默认情况下获取的就是操作系统的时区设置。因此在项目中最好事先设置好时区,
jvm在读取linux的系统时区时:
如果存在环境变量TZ,则jvm最优先读取环境变量TZ中的内容;
如果不存在环境变量TZ,会读取/etc/sysconfig/clock文件中的ZONE内容(需要引号);
若都不存在,则读取使用/etc/localtime文件内容所对应的时区。
如果设置了-Duser.timezone,则使用指定的时区;
1、在程序中使用java的函数设定时区。
2、在启动java程序时加参数-Duser.timezone=GMT+8
附设置为东八区的配置
1、java -Duser.timezone=Asia/Shanghai
2、/etc/sysconfig/clock文件内容ZONE=”Asia/Shanghai”
3、ln -s /etc/localtime /usr/share/zoneinfo/Asia/Shanghai
4、export TZ=Asia/Shanghai
相关推荐
这边文章中说的注册表文件 " 第五步找了一台能正常设置时区windows注册表 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones],备份之,覆盖之.;
经过某次打微软补丁后java获取的时间均为标准时间,和咱们国家的时间相差八小时,这是由于 注册表的建制更改有关,通过导入该注册表文件,可以恢复jvm时区到东八区
一次SPECjbb单JVM默认测试静态HTML结果
jvm源码
jvm 配置jvm参数 配置jvm参数
在tomcat下开发是发现导入时间型数据时,数据进入数据库时总是向前一天,需要修改tomcat时区jvm修改。
jvm源码,jvm-native的源码,jvm支行机制,可对jvm的运行过程进行分析 个人网站:https://www.zhangjunbk.com
jvm
深入解析jvm深入解析jvm深入解析jvm深入解析jvm深入解析jvm深入解析jvm
JVM图解-JVM指令-JVM原型图.rar
其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容; 其三是非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用; 本文...
主要是JVM内存分配及简单的JVM性能调优
46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT...
Jvm入门,Jvm入门,Jvm入门,Jvm入门,Jvm入门,Jvm入门
首先讲述JVM的基本概念和原理、架构等。最后一HelloApp讲述JVM的工作过程
学习关于JVM基础,java内模型的全面透析,Jar hell问题以及解决办法,Class文件格式 • Java编译执行流程 • ClassFile的格式介绍 • ClassFile中FieldInfo和MethodInfo介绍 • 类型描述Descriptor介绍 • ClassFile...
JVM配置资料JVM配置资料JVM配置资料JVM配置资料
大鱼塘O(可分配内存): JVM可以调度使用的总的内存数,这个数量受操作系统进程寻址范围、系统虚拟内存总数、系统物理内存总数、其他系统运行所占用的内存资源等因素的制约。 小池塘A(堆内存):JVM运行时数据区域...
包含了jvm的视频,jvm的笔记
讲JVM工作原理、垃圾回收讲的非常好的一个ppt