如何解决为什么在2010年12月31日返回1作为一年的一周?
Year of Year的定义是Locale
依赖的。
其他帖子中讨论了在美国如何定义。例如在德国(DIN 1355-1 / ISO 8601):一年的第一周*是新年中具有四天或以上的第一周。
*一周的第一天是星期一,一周的最后一天是星期日
JavaCalendar注重语言环境。例如:
public static void main(String[] args) throws ParseException {
DateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date lastDec2010 = sdf.parse("31/12/2010");
Calendar calUs = Calendar.getInstance(Locale.US);
calUs.setTime(lastDec2010);
Calendar calDe = Calendar.getInstance(Locale.GERMAN);
calDe.setTime(lastDec2010);
System.out.println( "us: " + calUs.get( Calendar.WEEK_OF_YEAR ) );
System.out.println( "de: " + calDe.get( Calendar.WEEK_OF_YEAR ) );
}
印刷品:
us: 1
de: 52
添加 对于美国(我认为墨西哥也是如此),每年的1.星期是1月1日所属的星期。-因此,如果1. Januar是星期六,则之前的星期五(12月31日)属于同一周,在这种情况下,这一天属于2011年1月。
解决方法
例如:
Calendar c = Calendar.getInstance();
DateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
c.setTime( sdf.parse("31/12/2010"));
out.println( c.get( Calendar.WEEK_OF_YEAR ) );
版画1
乔达时间也是如此。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。