润乾报表中now()函数结果与系统时间相差8小时的解决方案
来源:互联网 发布:js如何移除标签属性 编辑:程序博客网 时间:2024/06/05 11:13
在这个报表中的B4单元格,是获取当前时间函数now(),我们在页面中看一下效果:
而系统当前时间为:
我们可以发现一个奇怪的现象,那就是用now()函数获取的当前时间与系统时间相差8个小时,这个是什么原因呢?
由于润乾报表中的now()函数,是用new java.util.Date()取得的,那么问题肯定就出在jdk上了。
原来,J2SE中包含世界不同地区的时间区域数据文件。jre/lib/zi存放着这些文件。在J2SE里,sun.util.calendar.ZoneInfo从这些文件获取DST(夏令时)规则。 java.util.TimeZone类中getDefault方法的源代码显示,它最终是会调用sun.util.calendar.ZoneInfo类的getTimeZone 方法。这个方法为需要的时间区域返回一个作为ID的String参数。这个默认的时间区域ID是从 user.timezone (system)属性那里得到。如果user.timezone没有定义,它就会尝试从user.country和java.home (System)属性来得到ID。 如果它没有成功找到一个时间区域ID,它就会使用一个"fallback" 的GMT值。换句话说, 如果它没有计算出你的时间区域ID,它将使用GMT作为你默认的时间区域。
解决办法:
设置JVM的默认时区为东八区(北京时间):
在jdk的安装目录中的jre\lib\zi下,存放这各个时间区域的数据文件,我们找到GMT文件bak备份一下,然后在zi文件夹下的Asia中复制一份Hong_Kong并重命名为GMT(Hong_Kong为北京时区即东八区),复制完毕后,重启服务器,在浏览报表:
可以看到,时间与系统时间统一了。
- 润乾报表中now()函数结果与系统时间相差8小时的解决方案
- php date()函数结果与当前时间相差8小时
- 新版 PHP date函数 设置时间与电脑系统时间相差8小时的 解决方法
- 解决weblogic与系统时间相差8小时的问题
- 解决weblogic与系统时间相差8小时的问题
- 解决weblogic与系统时间相差8小时的问题
- 解决weblogic与系统时间相差8小时的问题
- PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法
- PHP 中 Date 函数与实际时间相差8小时的解决方法
- Java获取时间与系统时间相差8小时终极解决方案
- Linux中显示时间与主板时间相差8小时解决方案
- CentOS系统时间与现在时间相差8小时解决方法
- CentOS系统时间与现在时间相差8小时解决方法
- CentOS系统时间与现在时间相差8小时解决方法
- django1.9.0时间与系统时间相差8小时问题
- CentOS7系统时间与真实时间相差8小时
- 关于win7系统的jdk时间与系统时间相差8小时
- 关于win7系统的jdk时间与系统时间相差8小时
- 统计图分析(源自Echars图形)——柱状图(条形图)
- 88. Merge Sorted Array
- JavaScript:你可以赞扬批评嘲讽它,但却无法忽略
- 用Apache Spark进行大数据处理
- 第13周项目5-拓扑排序算法的验证
- 润乾报表中now()函数结果与系统时间相差8小时的解决方案
- 127.0.0.1和localhost的区别
- vs调试过程
- File分隔符挺有意思的
- AndroidStudio关联SVN
- 2016中国网络营销大会 共享网络营销行业经验和心得
- 用Apache Spark进行大数据处理二
- Android 自定义View
- Fragment支持切换动画的效果