![](/img/trans.png)
[英]Set Calendar.DAY_OF_WEEK using java.time.DayOfWeek
[英]Java Calendar using Calendar.DAY_OF_WEEK to get the first and the last dates for a particular date
在我的应用程序中,有一个代码有时会突然工作,它是关于使用 java 日历 object 通过 Calendar.DAY_OF_WEEK 获得一周的间隔。 代码检查星期一作为一周的开始和星期日作为一周的结束,例如: fromCal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); toCal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); toCal 设置为最后一个星期日,而不是星期天。 除了这种硬编码之外,还有其他方法可以做到这一点。
提前感谢帮助。
谢谢,
瓦布哈夫
我想您必须将一周的开始时间设置为星期一,否则上个星期日是一周中的星期日。
setFirstDayOfWeek
公共无效setFirstDayOfWeek (整数值)
Sets what the first day of the week is; eg, Sunday in US, Monday in France. **Parameters:** value - the given first day of the week.
问题出在语言环境中。 在英语(美国)中,星期日是一周的第一天。 检查此代码:
Calendar cal = Calendar.getInstance(Locale.ENGLISH);
cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
System.out.println("FirstDayOfWeek="+cal.getFirstDayOfWeek());
System.out.println(cal.getTime().toString());
cal = Calendar.getInstance(Locale.FRANCE);
System.out.println("FirstDayOfWeek="+cal.getFirstDayOfWeek());
cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
System.out.println(cal.getTime().toString());
在这里非常清楚你想要的行为。 您从日历 object 开始,其“现在”是一周中的某一天,也许是“今天”。 你的电话集(DAY_OF_WEEK,...)。 如果日历的今天是星期二,您希望得到什么效果? 星期日? 周一?
正如在其他答案中所观察到的,会发生什么取决于日历对一周的第一天的看法。 因此,首先将其设置为您选择的值。 然后,您将(根据此答案在本周获得周日和周一,这可能不是您想要的-如果今天是周日,您到底需要什么?-某些系统实际上可能正在“考虑”下周.
就个人而言,我可能会根据一些业务规则得到我的星期一,然后通过增加 6 天得到星期天。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.