高级JAVA开发必备技能:时区的规则发生变化时,如何同步JDK的时区规则(实战方案,建议收藏)

高级JAVA开发必备技能:时区的规则发生变化时,如何同步JDK的时区规则(实战方案,建议收藏)场景

服务器安装JDK时,默认会有支持JDK版本对应的时区规则。但是时区规则可能会变化的,那如何保持时区规则是最新的呢?


TZUpdater 工具介绍

提供的 TZUpdater 工具 允许您使用更新的时区数据更新已安装的 Java 开发工具包 (JDK) 和 Java 运行时环境 (JRE) 软件,以适应不同国家/地区的夏令时 (DST) 更改。Oracle 依赖于通过 IANA 的时区数据库公开提供的时区数据。


如果您无法使用 Oracle 最新的 JDK 或 JRE 更新版本,或者如果最新版本上的时区数据不是最新可用的,TZUpdater 工具提供了一种更新时区数据的方法,同时保持其他系统配置和依赖项不变.


TZUpdater 工具用法

TZUpdater 工具用于执行该工具的 JDK/JRE 软件实例。每次执行都会修改 JDK/JRE 软件。要将工具管理到 JDK/JRE 软件的多个实例。


在安装的 JDK/JRE 软件上运行 TZUpdater 工具之前,您必须停止操作系统上的 JDK/JRE 软件的任何正在运行的服务。


使用以下命令运行 TZUpdater 工具:高级JAVA开发必备技能:时区的规则发生变化时,如何同步JDK的时区规则(实战方案,建议收藏)高级JAVA开发必备技能:时区的规则发生变化时,如何同步JDK的时区规则(实战方案,建议收藏)高级JAVA开发必备技能:时区的规则发生变化时,如何同步JDK的时区规则(实战方案,建议收藏)高级JAVA开发必备技能:时区的规则发生变化时,如何同步JDK的时区规则(实战方案,建议收藏)服务自动化升级

思路步骤:

1、设置定时任务(操作系统配置就行),执行tzupdater 更新时区的命令脚本;


2、新开一个时区服务,用来对外提供时区和夏令时规则读取服务,独立部署;


3、在时区服务中,写个同步按钮,用来执行tzupdater 更新时区的命令脚本;


4、在时区服务中,将timeZone数据定时写到自定义的时区表中。提供维护功能,可以自定义新增修改删除timeZone数据。


此思路的好处:

1、其他服务不需要停止服务来更新时间,直接通过调用时区服务的数据,可保证获取到最新的时区数据;


2、自动化的好处,避免了手动维护时区的繁琐,人工介入有引发问题的风险;


3、时区服务和其他业务服务是拆分的,方便未来的扩展。


推荐相关文章

hutool日期时间系列文章

1DateUtil(时间工具类)-当前时间和当前时间戳


2DateUtil(时间工具类)-常用的时间类型Date,DateTime,Calendar和TemporalAccessor(LocalDateTime)转换


3DateUtil(时间工具类)-获取日期的各种内容


4DateUtil(时间工具类)-格式化时间


5DateUtil(时间工具类)-解析被格式化的时间


6DateUtil(时间工具类)-时间偏移量获取


7DateUtil(时间工具类)-日期计算


8ChineseDate(农历日期工具类)


9LocalDateTimeUtil(JDK8+中的{@link LocalDateTime} 工具类封装)


10TemporalAccessorUtil{@link TemporalAccessor} 工具类封装


其他

要探索JDK的核心底层源码,那必须掌握native用法


万字博文教你搞懂java源码的日期和时间相关用法


java的SimpleDateFormat线程不安全出问题了,虚竹教你多种解决方案


源码分析:JDK获取默认时区的风险和最佳实践


高级JAVA开发必须掌握技能:java8 新日期时间API((一)JSR-310:ZoneId 时区和偏移量),2万字详解)


高级JAVA开发必须掌握技能:java8 新日期时间API((二)JSR-310:常用的日期时间API),4万字详解)


参考:

TZUpdater :https://www.oracle.com/java/technologies/javase/tzupdater-readme.html


IANA时区数据版本:https://data.iana.org/time-zones/releases/


JRE 软件中的时区数据版本:https://www.oracle.com/java/technologies/tzdata-versions.html


上一篇:最近打算体验一下discuz,有不错的结构化数据插件


下一篇:给微信图文消息添加漂亮的分割符吧