造成这种问题的原因可能是:你的操作系统时区跟你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"
UTC=false
ARC=false
ZONE -- 时区
UTC -- 表明时钟设置为UTC。
ARC -- 仅用于alpha表明使用ARC。
分享到:
相关推荐
9. **Date与Time API的改进**:Java 8对日期和时间API进行了重大改进,引入了`java.time`包,提供更直观、更强大的日期、时间、时区处理功能。 10. **模块系统**:Java 9引入了模块系统(Project Jigsaw),但...
在Windows 7环境下,如果你的系统时间设置正确,但JDK显示的时间错误,那么可能是因为JDK没有正确地读取到这个信息,或者系统时区设置不包含Java能够识别的ID。 为了解决这个问题,我们可以采取以下步骤: 1. **...
### 数据库查询时间没有了时分秒的解决办法 在进行数据库操作时,有时会遇到一个令人困惑的问题:查询返回的时间字段中丢失了时分秒的...这对于依赖精确时间信息的业务逻辑至关重要,有助于确保数据的准确性和一致性。
它允许在不同的Java虚拟机(JVM)之间透明地调用对象的方法,使得开发者可以构建分布式应用程序,即在一台机器上执行的代码可以调用在另一台机器上运行的对象的方法,仿佛它们都在同一台机器上一样。 RMI的核心概念...
当你的系统时间不正确时,可能会导致各种意想不到的问题,例如日志记录时间错乱、定时任务执行失败等。针对“时区不正确问题1”,我们将深入探讨如何在C#环境下,通过调整MySQL配置、服务器时间和JRE设置来解决这个...
例如,如果数据库服务器设置为UTC(协调世界时),而你的本地系统时间是东八区(GMT+8),那么在不进行特殊处理的情况下,时间会相差8小时,但因为插入的是UTC时间,所以比本地时间晚4小时。 2. **JVM时区设置**:...
4. 日期和时间API:Java 8对日期和时间API进行了彻底改造,引入了java.time包,提供更易于使用的类如LocalDate、LocalTime、LocalDateTime等,替代了过时的java.util.Date和Calendar。 在Linux上安装JDK1.8,通常...
3. 数据库设计:在仓库管理系统中,可能需要创建多个表,如货物信息表、入库记录表、出库记录表等,通过合理的数据库设计可以提高数据的完整性和一致性。 三、仓库管理系统功能模块 1. 货物管理:包括货物的添加、...
- klock的设计目标是为Kotlin的多平台项目提供一致的日期和时间操作接口,无论是在服务器端(JVM)、浏览器端(JavaScript)还是原生应用(如iOS和Android)。 2. **核心功能**: - **日期和时间操作**:klock...
日期和时间API的改进也是JDK 8的一大亮点,新的`java.time`包取代了过时的`java.util.Date`和`java.util.Calendar`,提供了更直观和强大的日期时间操作。 在Windows环境下安装JDK 8u221,通常需要解压压缩包,然后...
- 时区转换问题:跨时区操作时需注意夏令时(DST)的影响,可能导致时间不一致。 5. **实践应用** - 源码阅读:理解开源项目的源码能加深对Java知识的理解,如Spring框架,学习其设计模式和最佳实践。 - 工具...
方法重写发生在类继承时,子类可以重写一个父类中已有的方法,必须在返回类型和参数列表一样时才能说是重写,否则就是重载。 - **知识点**:重写(Overriding)是指子类覆盖父类中的方法,要求方法签名完全相同...
6. **新的日期时间API**:Java 8引入了全新的日期和时间API(java.time包),取代了java.util.Date和java.util.Calendar,提供了更强大且易于使用的类,如LocalDate、LocalTime、LocalDateTime等。 7. **安全性更新...
日期与时间API的改进是JDK8中一个实用的增强,新的`java.time`包取代了原来的`java.util.Date`和`Calendar`,提供了更加直观和易于使用的类,如`LocalDate`、`LocalTime`和`LocalDateTime`,处理日期和时间变得更加...
- **Date and Time API**:改进了日期和时间的处理,引入了`java.time`包,替代了旧的`java.util.Date`和`java.util.Calendar`。 - **默认方法**:接口中可以添加有实现的方法,增强了接口的功能性。 - **String的`...
在Java环境中,通常需要预热系统,即运行一段时间让JVM进行热身,这样能够提升后续测试的性能。 测试环境建议包括三台服务器:一台作为Mycat Server,一台作为MySQL数据库,另一台用作压力测试程序的执行主机。网络...
- Date和Time API:用全新的java.time包替换了旧的日期和时间API,提供更强大、更易用的时间处理功能。 - Nashorn JavaScript引擎:JDK 8包含了Nashorn JavaScript引擎,使得Java代码可以与JavaScript代码交互,增加...
本篇文档将对其中的一些关键类,如Object、String、StringBuffer、StringBuilder、System和Date,以及它们的相关方法进行详细讲解。 1. Object Object类是所有Java类的父类,它定义了一些基本的方法,如: - `...
Java是一种广泛使用的面向对象的... - **日期时间API**:取代了旧的Date和Calendar类,提供了更直观、易用的时间日期处理。 这些知识点构成了Java语言的基础和核心,掌握它们将帮助开发者编写出高效、可靠的Java程序。