我试图用JodaTime获取当前的周数.
在法国,周定义如下:
>星期一开始一个星期(周末在美国开始周).
>一年的第一个星期是1月4日的一周(而IMO,那是1月1日在美国的那一周,是吗?
示例:2012年1月1日是星期日.
因此,
>根据法国日历,它属于2011年第52周.
>根据美国日历,它属于2012年第1周
使用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
> WeekOfWeekYear(US):1
我的代码有问题吗?