收银机c 当前时间间与操作时间不一致怎么办

造成这种问题的原因可能是:你的操作系统时区跟你JVM的时区不一致。&
你的操作系统应该是中国的时区吧,而JVM的时区不一定是中国时区,你在应用服务器的Java虚拟机添加如下配置:& -Dfile.encoding=UTF8&&&& -Duser.timezone=GMT+08
在一个精简的Linux安装上jre,发现所有的java程序获取的时间都不是系统时间。后来发现原来是时区不对。java程序获取的时间都是GMT时间,而系统是北京时间,应该是GMT+8,刚好相差8小时。网上搜了好多资料,只有两种方法:
1、在程序中使用java的函数设定时区。
2、在启动java程序时加参数-Duser.timezone=GMT+8
不过总不能去修改每个程序的源码去设定时区吧。也不想在每个java程序启动的时候加参数,太麻烦了。就没有一劳永逸的办法了?
开始以为jre应该会有某个配置文件保存了时区的配置,结果一无所获。不过总有jre总要去系统中获取时区配置吧。于是开始想是不是java用的是 linux中的系统配置文件?于是到linux系统下/etc/sysconfig目录看时区配置。发现缺少了clock这个用于设置时区的文件。把别的 linux系统中的这个文件拷过来一试,ok。java程序的时间和系统时间一致了。看来jre是从/etc/sysconfig/clock这个文件中 获取时区信息的。
附clock文件内容:
ZONE=&Asia/Shanghai&
ZONE -- 时区
UTC&&-- 表明时钟设置为UTC。&
ARC&&-- 仅用于alpha表明使用ARC。 
总结:JVM的时区默认的是操作系统的时区,但是我们可以通过两种方式给JVM手动设置时区:通过代码和java启动参数。在android中,JVM的时区我们只能用代码来设置,因为默认的我们改不了;因为java的启动参数是通过jre设置的,而我们是看不到的,所以只能通过代码设
置:TimeZone.setDefault(TimeZone.getTimeZone(&Asia/Shanghai&));。
本文已收录于以下专栏:
相关文章推荐
using Susing System.Dusing System.Cusing System.Wusing System.Web.Security...
java List.subList方法中的超级大陷阱
在使用集合中,可能常常需要取集合中的某一部分子集来进行一下操作,于是subList这个方法就映入我们的眼帘,毫不犹豫地使用。 
最近在启动Web容器的时候,发现日志的时间与系统时间不匹配,相差整整8个小时,后来通过网上搜索资料后,发现解决方式如下:
在JVM启动的时候,加入参数-Duser.timezone=GMT+08...
在一个精简的Linux安装上jre,发现所有的java程序获取的时间都不是系统时间。后来发现原来是时区不对。java程序获取的时间都是GMT时间,而系统是北京时间,应该是GMT+8,刚好相差8小时。网...
很多时候在用new Date() 方法得到的时间对象与本机的时间是不符的。 我发现这个问题都是由于jvm时区设置的问题。 用程序: final Properties p = System.getPro...
//转换服务器时区为东八区
TimeZone timeZoneSH = TimeZone.getTimeZone(“Asia/Shanghai”);
SimpleD...
/haizai219@126/blog/static//
java2平台为我们提供了丰富的日期时...
在我的java代码中写上下面简单的代码:
                     Date da...
现象:Ubuntu 14.04.1 LTS线上服务器是在泰国地区运行,初始化使用cp /usr/share/zoneinfo/Asia/Bangkok /etc/localtime进行系统时区的修改并...
公司新装的测试环境,发现报表上显示的时间比正常时间差了8个小时,检查了一下系统时间,发现设置完全正确,这就很奇怪了;
       后来想到因为系统中使用的时间类型是timestamp类型,所以会有时...
他的最新文章
讲师:刘文志
讲师:陈伟
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)POS收银机常见故障判定_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
POS收银机常见故障判定
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢Docker 解决容器时间与主机时间不一致的问题三种解决方案
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了Docker 解决容器时间与主机时间不一致的问题的相关资料,这里提供了三种方法,供大家参考,需要的朋友可以参考下
Docker容器时间与主机时间不一致
通过date命令查看时间
查看主机时间
[root@localhost ~]# date
2016年 07月 27日 星期三 22:42:44 CST
查看容器时间
root@b43340ecf5ef:/#date
Wed Jul 27 14:43:31 UTC 2016
可以发现,他们相隔了8小时。
CST应该是指(China Shanghai Time,东八区时间)
UTC应该是指(Coordinated Universal Time,标准时间)
所以,这2个时间实际上应该相差8个小时。(bluer: 所以没有设置过的容器, 一般跟宿主机时间相差8h)
所以,必须统一两者的时区。
共享主机的localtime& (方法一)
创建容器的时候指定启动参数,挂载localtime文件到容器内& ,保证两者所采用的时区是一致的。
docker run --name &name& -v /etc/localtime:/etc/localtime:ro ....
复制主机的localtime& (方法二)
docker cp /etc/localtime:【容器ID或者NAME】/etc/localtime
在完成后,再通过date命令进行查看当前时间。
但是,在容器中运行的程序的时间不一定能更新过来,比如在容器运行的MySQL服务,在更新时间后,通过sql查看MySQL的时间
select now()
可以发现,时间并没有更改过来。
这时候必须要重启mysql服务或者重启Docker容器,mysql才能读取到更改过后的时间。
创建自定义的dockerfile& (方法三)
创建dockerfile文件,其实没有什么内容,就是自定义了该镜像的时间格式及时区。
FROM redis
FROM tomcat
ENV CATALINA_HOME /usr/local/tomcat
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo 'Asia/Shanghai' &/etc/timezone \
保存后,利用docker build命令生成镜像使用即可。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具}

我要回帖

更多关于 mysql 查询当前时间 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信