首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ICU4j SimpleDateFormatter返回奇数结果

ICU4j SimpleDateFormatter返回奇数结果
EN

Stack Overflow用户
提问于 2017-01-27 03:16:06
回答 1查看 265关注 0票数 1

我们的项目需要季度支持,不幸的是,我们使用的是java 1.7,并且由于其他不幸的原因而陷入困境。

我们添加了ICU4j库来使用在其中提供的SimpleDateFormat。

不幸的是,这是一个非常奇怪的解析日期(见下文)。任何帮助都将不胜感激。

代码语言:javascript
复制
  val formatter  = new java.text.SimpleDateFormat("yyyy")
  val formatter2 = new com.ibm.icu.text.SimpleDateFormat("yyyy")
  Array(formatter2.parse("1234"), formatter.parse("1234"))

结果

代码语言:javascript
复制
0 = {Date@10561} "Sun Jan 01 00:00:00 PST 1234"
1 = {Date@10563} "Sun Jan 01 00:12:28 PST 1234"

我阅读了大量的文档,但不确定为什么要用偏移量进行解析。我确信这是api的一部分,并希望有人能解释我的困难。任何帮助都将不胜感激。

http://www.icu-project.org/apiref/icu4j/com/ibm/icu/text/SimpleDateFormat.html

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-27 09:22:03

关于时区问题的

也许ICU4J时区数据/规则和您的Java7-JVM在1234年是不同的。通常你应该使用1900年以后的几年,对吧?如果是这样的话,得到相同规则的概率要高得多。如果不是,那么您应该真正关心选择正确的版本,以确保您有相同的规则。也许您还需要应用甲骨文的卷取器工具

关于区域的更新: 由于OP的良好研究,我们可以设置一个特定于ICU4J的系统属性com.ibm.icu.util.TimeZone.DefaultTimeZoneType = JDK

无论如何,如果使用ICU4J的唯一原因是对季度的支持,那么另一种选择可能是

任一

使用我的库Time4J (v3.x行运行在Java-6+7上)。它还提供了更小、更好的API (更接近java.time在Java-8中所做的)的季度支持,包括基于与ICU4J相同的CLDR数据的良好国际化,请参见模式文档

使用Threeten-Backport (缺点是没有任何国际化->,缺乏本地化数据)。

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

https://stackoverflow.com/questions/41886501

复制
相关文章

相似问题

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