首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java SystemV时区和JodaTime

Java SystemV时区和JodaTime
EN

Stack Overflow用户
提问于 2012-05-21 11:40:57
回答 3查看 4.1K关注 0票数 5

我正在使用JodaTime处理Java应用程序中的时区。当试图从java时区的id构建DateTimeZone (JodaTime)对象时,我遇到了一个问题。Joda抛出

代码语言:javascript
复制
 java.lang.IllegalArgumentException: The datetime zone id 'SystemV/HST10' is not recognised

关于时区的折叠列表:

  • SystemV/HST10 10
  • SystemV/YST9 9
  • SystemV/YST9YDT
  • SystemV/PST8 8
  • SystemV/PST8PDT
  • SystemV/MST7 7
  • SystemV/MST7MDT
  • SystemV/CST6 6
  • SystemV/CST6CDT
  • SystemV/EST5 5
  • SystemV/EST5EDT
  • SystemV/AST4 4
  • SystemV/AST4ADT

这些时区是用来做什么的?它们与非程序员有关吗?为一般用途设计的应用程序是否应该支持这些时区?

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-22 07:48:31

SystemV时区ID是旧的,不推荐使用。但是,您可以通过重编 (包含systemv时区数据文件的Joda-Time文件)使joda-time理解它们。请参阅systemv数据文件中的评论掉行。(即)取消对行的注释并重新构建jar文件)。

票数 4
EN

Stack Overflow用户

发布于 2012-05-22 06:52:44

我将把这作为一个新的帖子,因为它提供了我的问题的答案。SystemV时区被使用在一个旧的UNIX中,这个系统被命名为UNIX。在与我的团队讨论之后,我们认为它们对非编程人员甚至现在的程序员来说都不重要。所以我们决定不在我们的应用程序中使用它们。

有关SystemV时区的一些参考资料:

  • 泽达
  • V
票数 3
EN

Stack Overflow用户

发布于 2012-05-21 13:48:05

您可以简单地使用方法TimeZone将java TimeZone转换为DateTimeZone。

代码语言:javascript
复制
TimeZone tz = //...  
DateTimeZone dtz = DateTimeZone.forTimeZone(tz);  

其中一些区域可以不使用"SystemV/“进行解析。

所以你可以用

代码语言:javascript
复制
String tzId = "SystemV/MST7MDT";
DateTimeZone tz = DateTimeZone.forID(tzId.replaceAll("SystemV/", ""));  

你也可以做下一个

代码语言:javascript
复制
TimeZone tz = TimeZone.getTimeZone("SystemV/MST7MDT");
DateTimeZone jodaTz = DateTimeZone.forTimeZone(tz);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10684563

复制
相关文章

相似问题

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