`

Java夏令时问题

 
阅读更多

 

操作系统不使用 UTC 时间的情况下,操作系统会使用系统记录的夏令时跳变时间点自动进行夏令时切换。

suse11 系统在 cd /usr/share/zoneinfo 中有所有时区信息。可以用 zdump -v 时区 ID 查看时区信息,里面会有详细的夏令时切入切出点记录。

:

Europe/Budapest  Sun Mar 25 00:59:59 2012 UTC = Sun Mar 25 01:59:59 2012 CET isdst=0
Europe/Budapest  Sun Mar 25 01:00:00 2012 UTC = Sun Mar 25 03:00:00 2012 CEST isdst=1
Europe/Budapest  Sun Oct 28 00:59:59 2012 UTC = Sun Oct 28 02:59:59 2012 CEST isdst=1
Europe/Budapest  Sun Oct 28 01:00:00 2012 UTC = Sun Oct 28 02:00:00 2012 CET isdst=0
 

Java 也有自己的时区配置信息 , 记录在 %jre_home%/lib/zi , 其中包含夏令时配置。

 

 

Java 通过 TimeZone.getDefault() 发现或 System.getProperty("user.timezone") 获取当前时区。

如果 java 能获取到操作系统时区配置,并且 jre 中此时区的夏令时配置也和操作系统配置一致,则 java 程序能正确解析夏令时,如果 java 的夏令时规则和操作系统的不一样,则会辨识错误。

 

比如操作系统设置为 2012-10-6 GMT+3 时区 Asia/Baghdad

此时在xp操作系统上,这个时间点是可以勾选夏令时的,但是我们使用的 jre 中认为巴格达时区没有夏令时,

这时候解析的时间就会出错,系统显示的时间是标准时间,会比操作系统时间前一个小时 ( 夏令时比正常时间快 1 小时 )

( 通过世界时钟查询,今年巴干达确实没有夏令时 http://24timezones.com/zh_shi/baghdad_shi_zhong.php )

 

 

GMT +1 时区 Europe/Budapest ,操作系统记录的切入时间与切出时间与 jre 记录一样,这样夏令时切换不会有问题。

 

 

如果 Jre 时区与实际时区不一致需要下载 jre 更新工具

http://www.oracle.com/technetwork/java/javase/downloads/tzupdater-download-513681.html

或者使用 java 自动更新。

 

 

分享到:
评论

相关推荐

    基于java时区转换夏令时的问题及解决方法

    "基于Java时区转换夏令时的问题及解决方法" 在Java中进行时区转换时,需要了解夏令时的概念和时区的表示方法。夏令时是指在夏天的时候,将时钟拨快一个小时,以提早日光的使用。目前有110多个国家采用夏令时。 ...

    java的时区问题

    2. **夏令时处理**:Java自动处理夏令时变化,但需要确保JVM使用的时区数据是最新的,可以通过`tzupdater`工具更新。 3. **用户时区设置**:在处理用户时间时,应考虑用户的时区,而不是硬编码为服务器或开发者的...

    java转换时区时间过程详解

    在本文中,我们将详细介绍时区的概念、UTC时间、格林尼治时间、夏令时、区时转换等知识点,并提供Java代码示例来实现时区时间转换。 一、时区概念 时区是指一个地区或国家的标准时间,可以是正时区也可以是负时区...

    java时区问题

    3. **时区转换**:通过`TimeZone`对象的`inDaylightTime(Date date)`方法判断给定日期是否处于夏令时,以及`getOffset(int era, int year, int month, int day, int dayOfWeek, int milliseconds)`获取特定时间的...

    java 获取系统时间错误,少了8小时

    这通常与Java中的时区设置和夏令时(Daylight Saving Time, DST)处理有关。 Java的`Date`类在默认情况下会按照本地时区(Local Time Zone)展示日期和时间。如果开发者期望获取的是协调世界时间(UTC),但程序却...

    在 Java 应用程序中定时执行任务.doc

    标准的Java库提供了`java.util.Timer`和`java.util.TimerTask`类,但它们在处理复杂定时任务时存在局限性,比如无法适应夏令时调整导致的时间变化。为了解决这些问题,开发者Tom White提出了一种简单而通用的定时...

    java时间差

    - 当比较的日期跨越夏令时变更时,需要特别注意时间差可能会受到夏令时影响。 - 在处理时间差时,确保考虑时区差异,尤其是在处理跨时区的日期和时间。 - 为了避免精度损失,尽量使用`Duration`而非直接操作毫秒值,...

    java.util.TimeZone 的世界时区列表

    - **“SystemV/**”**开头的标识符**:这些标识符用于表示美国和其他地区的历史性时区转换规则,如“SystemV/PST8PDT”代表美国太平洋标准时间(PST)及其夏令时(PDT)转换规则。 - **“MIT”**:这通常是指麻省...

    JAVA new Date()或Calendar.getInstance().getTime()得到的时间不对

    2. **夏令时问题**:某些地区在特定季节会实行夏令时,这可能导致时间的偏差。Java的 `TimeZone` 类考虑了这种情况,但需要确保时区设置包含了正确的夏令时规则。 3. **代码逻辑错误**:如果在代码中对时间进行了...

    Java定时器.pdf

    然而,这个框架存在一定的局限性,例如无法直接处理夏令时变化导致的时间跳跃问题,对于某些复杂定时需求显得不够灵活。 为了克服这些问题,我们可以构建一个更通用的定时器和定时任务计划框架。这个框架通常包括两...

    JAVA中的时间操作

    它考虑了夏令时等因素。 5. **ZoneId**: 代表一个特定的时区,如"Asia/Shanghai"或"Europe/Paris"。 6. **Duration**和**Period**: 分别用于表示两个时刻之间的持续时间(以秒和纳秒为单位)和两个日期之间的间隔...

    如何在 Java 中为日期增加一天.docx

    而 `java.time` 包中的类则考虑了时区和夏令时的转换,因此在处理跨时区的日期时更准确。 总结起来,Java 提供了多种方法来增加日期。对于新项目或需要更高级功能的情况,推荐使用 `java.time` 包中的类,如 `...

    夏令时补丁

    标题中的“夏令时补丁”可能是指针对计算机系统中处理夏令时期间问题的软件更新或修复程序。夏令时(Daylight Saving Time, DST)是某些国家和地区在夏季实行的一种时间调整制度,通常会将时钟向前拨动一小时以充分...

    java.util.pdf

    TimeZone类代表一个时区偏移量,并且可以计算夏令时调整。它对于处理与时间和日期相关的任务非常有用,尤其是在处理全球化应用时。 **Vector类**: Vector类实现了可动态增长的数组。与数组相比,Vector是同步的,...

    java四种时间的区别和联系

    `Calendar`提供了更高级别的日期和时间操作,例如增加或减少特定时间单位(天、小时、分钟等)的能力,并且可以更容易地处理时区和夏令时的变化。 #### 3. `java.sql.Date` `java.sql.Date`专门用于数据库交互,它...

    由夏令时间所引起的时间差的解决方法

    在软件开发过程中,处理不同时区的时间数据时常常会遇到各种问题,尤其是涉及到夏令时调整的情况。本文将深入探讨由夏令时间变化所引起的时间差问题及其解决方案,并通过具体实例进行说明。 #### 夏令时间的概念 ...

    Android 完美获取手机当前时区,解决时间偏移量和夏令时差问题

    Android 完美获取手机当前时区,解决时间偏移量和夏令时差问题.从本地时间里扣除这些变量,即可以取得UTC时间

    javazone-2015

    Javazone 2015要求Maven的3.3.3用法运行./demo.sh ,您应该看到类似以下的输出: App is located in my-app-v2-1-g016ee92.jarLib is located in lib-a-v2-1-g016ee92.jar可以像这样重新运行(一旦扩展安装在本地...

    Java实现时间与日期程序(附源代码)

    - 日期时间API还支持闰年、夏令时等复杂情况的处理,以及各种查询和调整方法。 通过以上知识,你可以编写出处理日期和时间的Java程序。提供的源代码应该包含示例,演示了如何使用这些类和方法,帮助理解并应用到...

    Java-Java处理日期和时间教程

    总结来说,学习Java处理日期和时间不仅涉及理解和使用新API,还包括掌握日期时间的概念,如闰年、时区、夏令时等。通过视频教程资源,你可以系统地学习这些知识,提高你的Java编程技能。在实际项目中,合理利用这些...

Global site tag (gtag.js) - Google Analytics