gpt4 book ai didi

Java TimeZone.setDefault ("GMT-7")

转载 作者:行者123 更新时间:2023-12-01 05:13:08 24 4
gpt4 key购买 nike

我正在寻找一种更好的方法来设置 Java 的默认时区。我们当前正在访问 DB2 数据库以获取其当前时区,但它不是时区名称,只是当前的小时/分钟偏移值。因此,我们采用该值并构造一个类似“GMT-07:00”的 ID。

这似乎会导致两个问题:

  1. 我们必须确保针对 DST 开始/结束进行重置。例如我们已经设置了一个计划任务来查询数据库并设置时区。烦人。
  2. 由于我们(尚)未知的原因,我们的计划任务有时会设置错误的时区。

假设 DB2 总是返回正确的值,那么我只能想象“GMT-07:00”是模糊的,并且在 Java/它的时区 db/操作系统之间,它从表中提取不同的值。

计算出像“GMT-07:00”这样的字符串后,我们的代码会执行以下操作:

 String timezoneGMTOffsetString = "GMT-07:00";
TimeZone localTimeZone = TimeZone.getTimeZone(timezoneGMTOffsetString);
TimeZone.setDefault(localTimeZone);
System.setProperty("user.timezone", timezoneGMTOffsetString);

我们认为我们只需要在外部设置该值并在启动 Tomcat 时使用 -Duser.timezone="America/Los_Angeles" 即可。然后我们就可以取消预定的作业了!

有什么建议吗? Java 6.0_26

最佳答案

首选解决方案始终是转换为 UTC 并从 UTC 转换。使用joda-time用于转换的库。

关于Java TimeZone.setDefault ("GMT-7"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11767344/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com