2016年1月1日的爪哇Joda时间返回yyyyww,截至201653年
DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyyww");
dateTimeFormatter.print(new DateTime(2016, 1, 1, 1, 1).withZone(DateTimeZone.UTC))
返回201653
为什么是2016年的第53周而不是2015年
你可以在下面搜索框中键入要查询的问题!
DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyyww");
dateTimeFormatter.print(new DateTime(2016, 1, 1, 1, 1).withZone(DateTimeZone.UTC))
返回201653
为什么是2016年的第53周而不是2015年
# 1 楼答案
因为1月1日是星期五。在这种情况下,这一周算作2015年的最后一周,2016年的第一周将从第一个星期一(1月4日)开始
这是根据ISO 8601标准实施的:
# 2 楼答案
你要找的是以周为基础的年份(符号x),而不是纪年(符号y)。另请参见pattern syntax used by Joda-Time,它与
SimpleDateFormat
或Java-8不同。所以解决方案应该是这样的: