gpt4 book ai didi

java - 当一周从星期一开始时,如何获取给定日期的星期几?

转载 作者:行者123 更新时间:2023-11-30 04:26:52 24 4
gpt4 key购买 nike

日历 API 让我感到困惑。我想做的事情看起来很简单,但似乎并不真正适合我。

我想将一周的第一天设置为星期一,而不是默认的星期日(我知道它因区域设置而异,但我想始终强制执行星期一)。最重要的是,对于给定的日期,我想检索它代表的星期几(例如,1 表示星期一,7 表示星期日)。

有什么方法可以使用默认的日历 API 来执行此操作吗?我尝试过类似的方法:

Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.MONDAY);
cal.setTime(<some Date object that's a monday>);
System.out.println(cal.get(Calendar.DAY_OF_WEEK));

它给了我一个 2,而不是 1。我怀疑这是因为它给了我 Calendar.MONDAY 的值,但我不完全确定。基于这种怀疑,以下方法确实有效:

Calendar cal = Calendar.getInstance();
cal.setTime(<some Date object that's a monday>);
System.out.println(
(cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) ?
7 : cal.get(Calendar.DAY_OF_WEEK) - 1);

...但我不想有那个 if 语句。有没有办法使用直接的 Calendar API 来完成我想要的事情?

最佳答案

查看日历源,setFirstDayOfWeek 似乎实际上只影响 WEEK_OF_MONTH 和 WEEK_OF_YEAR 计算。无论一周从哪一天开始,MONDAY 仍然是 MONDAY,并且在日历中 MONDAY 的值为 2。

关于java - 当一周从星期一开始时,如何获取给定日期的星期几?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15666086/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com