| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 高级JAVA开发必备技能:时区的规则发生变化时,如何同步JDK的时区规则(实战方案,建议收藏) -> 正文阅读 |
|
[Java知识库]高级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 工具:
要成功更新时区数据,您应该确保您有足够的权限来修改 如果未指定任何选项,则会显示用法消息。要更新时区数据,请使用
手动升级注意:1、在安装的 JDK/JRE 软件上运行 TZUpdater 工具之前,您必须停止操作系统上的 JDK/JRE 软件的任何正在运行的服务。 2、要成功更新时区数据,您应该确保您有足够的权限来修改 3、如果系统上有多个JDK/JRE ,需要将该工具用于每个JDK/JRE中(每个JDK/JRE都要操作一遍) 4、更新成功后,要重新启动此 JDK/JRE 实例上的应用程序服务(如果还没更新,重启下服务器试试) 操作步骤:1、下载Oracle官方提供的tzupdater.jar包;下载地址 https://www.oracle.com/java/technologies/javase-tzupdater-downloads.html 把tzupdater.jar放到java目录bin目录下,比如
2、查看当前时区数据库版本,以windows为例,用管理员身份运行cmd,切换到tzupdater.jar对应的目录:
3、在线更新,以windows为例,用管理员身份运行cmd,切换到tzupdater.jar对应的目录:(第3种和第4种更新方式任选一种)
如图所示,已经更新成功到了tzdata2021a版本了。 更新后的文件是放在jre/lib/tzdb.dat ,如图所示,它有备份历史的版本。 4、离线更新:要先下载最新的时区数据,下载地址: https://data.iana.org/time-zones/releases/ 以windows为例,用管理员身份运行cmd。切换到tzupdater.jar对应的目录:
注: windows建议放在C盘根目录下,路径目录也不要有中文; 用管理员身份运行cmd(需要写权限); 如上面的命令所示,file后面的/是3个 5、以上执行完后,用第2步的查看当前时区数据库版本命令,查看是否更新成功。 服务自动化升级思路步骤:1、设置定时任务(操作系统配置就行),执行tzupdater 更新时区的命令脚本; 2、新开一个时区服务,用来对外提供时区和夏令时规则读取服务,独立部署; 3、在时区服务中,写个同步按钮,用来执行tzupdater 更新时区的命令脚本; 4、在时区服务中,将timeZone数据定时写到自定义的时区表中。提供维护功能,可以自定义新增修改删除timeZone数据。 此思路的好处:1、其他服务不需要停止服务来更新时间,直接通过调用时区服务的数据,可保证获取到最新的时区数据; 2、自动化的好处,避免了手动维护时区的繁琐,人工介入有引发问题的风险; 3、时区服务和其他业务服务是拆分的,方便未来的扩展。 推荐相关文章hutool日期时间系列文章2DateUtil(时间工具类)-常用的时间类型Date,DateTime,Calendar和TemporalAccessor(LocalDateTime)转换 9LocalDateTimeUtil(JDK8+中的{@link LocalDateTime} 工具类封装) 10TemporalAccessorUtil{@link TemporalAccessor} 工具类封装 其他java的SimpleDateFormat线程不安全出问题了,虚竹教你多种解决方案 高级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 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 9:19:08- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |