java – 使用JodaTime获取本地化的周号
发布时间:2020-12-14 16:23:33 所属栏目:Java 来源:网络整理
导读:我试图用JodaTime获取当前的周数. 在法国,周定义如下: 星期一开始一个星期(周末在美国开始周). 一年的第一个星期是1月4日的一周(而IMO,那是1月1日在美国的那一周,是吗? 示例:2012年1月1日是星期日. 因此, 根据法国日历,它属于2011年第52周. 根据美国日历,
我试图用JodaTime获取当前的周数.
在法国,周定义如下: >星期一开始一个星期(周末在美国开始周). 示例:2012年1月1日是星期日. >根据法国日历,它属于2011年第52周. 使用JodaTime,我发现我可以通过以下方法获取周数DateTime#getWeekOfWeekyear(). 我认为通过指定正确的TimeZone,我会得到一个本地化的结果: DateTime dtFr = new DateTime(2012,1,11,DateTimeZone.forTimeZone(TimeZone.getTimeZone("Europe/Paris"))); DateTime dtUS = new DateTime(2012,DateTimeZone.forTimeZone(TimeZone.getTimeZone("US/Arizona"))); LOGGER.info("weekYear (FR) : " + dtFr.weekyear().get()); LOGGER.info("weekOfWeekYear (FR) : " + dtFr.getWeekOfWeekyear()); LOGGER.info("weekYear (US) : " + dtUS.weekyear().get()); LOGGER.info("weekOfWeekYear (US) : " + dtUS.getWeekOfWeekyear()); 输出为: 2014-03-05 11:28:08,708 - INFO - c.g.s.u.JodaTest - weekYear (FR) : 2011 2014-03-05 11:28:08,709 - INFO - c.g.s.u.JodaTest - weekOfWeekYear (FR) : 52 2014-03-05 11:28:08,709 - INFO - c.g.s.u.JodaTest - weekYear (US) : 2011 2014-03-05 11:28:08,709 - INFO - c.g.s.u.JodaTest - weekOfWeekYear (US) : 52 我曾预料到: > weekYear(US):2012 我的代码有问题吗? 解决方法
对您本地化周号的问题抱歉的答案:JodaTime不支持它,只有ISO-8601定义周数.我知道很多用户,这就像一个节目停止.这里的旧的java.util.* – 东西显然更好.
在JodaTime中实现这一功能的唯一方法是引入一个专门的日期时间段,但是当项目引导自己承认时,肯定不容易实现.这已经是noticed in year 2007,但自从没有发生. 顺便提一下,时区与本地化周数的问题无关,因此您无法通过任何时区配置来解决这个旧的Joda问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |