首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java TimeZone.setDefault("GMT-7")

Java TimeZone.setDefault("GMT-7")
EN

Stack Overflow用户
提问于 2012-08-01 20:47:41
回答 1查看 2.5K关注 0票数 1

我正在寻找一种更好的方法来设置Java的默认时区。我们目前正在访问DB2数据库以获取它的当前时区,但它不是时区名称,只是当前小时/分钟偏移值。所以我们用这个值构造一个ID,比如"GMT-07:00“。

这似乎造成了两个问题:

  1. 我们必须确保重新设置DST开始/结束。例如,我们设置了一个预定任务,查询数据库并设置时区。很烦人。
  2. 由于我们还不知道的原因,我们的计划任务有时会设置错误的时区。

假设DB2总是返回正确的值,那么我只能想象"GMT-07:00“是模糊的,在Java/ it的时区db/ OS之间,它从表中提取一个不同的值。

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

代码语言:javascript
复制
 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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-01 20:56:28

首选的解决方案总是隐蔽于UTC和UTC。使用尤达-时间库进行转换。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11767344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档