可对在 IBM® i
服务器上运行的所有 JVM 进程设置同一时区。
开始之前
验证是否在 IBM i 服务器上安装了扩展本地语言支持 (NLS)。如果尚未安装扩展 NLS 支持,那么通过在安装基本操作系统 (5769-SS1) 时选择选件 21 来安装。
关于此任务
在某些应用程序环境中,所有 JVM 进程需要使用同一时区。如果您需要使用同一时区,那么可以在启动应用程序服务器之前更新
user.timezone 属性(该属性在 IBM i 服务器的
SystemDefault.properties
文件中)或配置该服务器的当地时区:
过程
- 更新 IBM i 服务器的 SystemDefault.properties 文件中的 user.timezone 属性
要点: 对 user.timezone
属性指定的值将覆盖您创建的任何系统当地时区设置。
- 编辑 /QIBM/UserData/Java400 目录中的 SystemDefault.properties 文件。 如果 SystemDefault.properties 文件不存在,那么在该目录中创建。
- 将对 user.timezone 属性指定的值更改为正确的时区。 如果此属性不存在,那么将其添加至文件。
用于设置该属性的语法为
user.timezone=timezone,其中 timezone
是受支持的相应时区值。
Java™ 虚拟机 (JVM) 将根据
user.timezone 属性值和 QHOUR 和 QUTCOFFSET 系统值来计算时间。QUTCOFFSET 表示系统时区与格林威治标准时间 (GMT) 之间的小时差。JVM
会将 QHOUR 和 QUTCOFFSET 的值加在一起来计算 GMT,然后使用 GMT 和 user.timezone
属性的值来生成正确的时间。
- 保存所作的更改。
- 配置 IBM i 服务器的系统当地时区。
避免故障: 如果在
SystemDefault.properties
文件中对 user.timezone 属性指定了某个值,那么它将覆盖此系统当地时区设置。
gotcha
- 创建当地时区源文件。
运行“创建文件”(CRTF) 命令,以根据
QSYSLOCALE 库中的 LOCALSRC 文件创建此文件。
- 通过运行“启动 SEU”(STRSEU) 命令来编辑源文件。
- 在文件中指定时区。
源文件还包含一些设置,以指示夏令时开始时间和结束时间以及要加上或减去的时间。Java 虚拟机将忽略这些设置并且只读取 TNAME 时区字段。TNAME 的值必须与 Java 时区值的名称相匹配。
- 通过运行“创建当地时区”(CRTLOCALE) 命令来创建当地时区。
- 编辑用户概要文件以使用新的当地时区。
要更改用于运行应用程序服务器的用户概要文件,请运行“用户概要文件”(CHGUSRPRF) 命令。
- 保存更改。
结果
在 IBM i 服务器上运行的所有 JVM 进程将使用同一时区。