就我而言,一周从周一到周日开始。我想得到本周星期一日期。 我使用以下代码来获取星期一日期。
Calendar c = Calendar.getInstance();
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println("Date " + c.getTime());
除星期日外,它适用于所有日子,如果当前日期是星期日,它将给出下周星期一日期。是否可以使用 java.util.Date/Calendar API 获取当前周星期一日期,即使它是星期日。
任何帮助表示赞赏。
您可以告诉Calendar
类应将一周中的哪一天视为第一天。尝试添加以下行:
c.setFirstDayOfWeek(Calendar.MONDAY);
LocalDateTime thisWeeksMonday = LocalDateTime.now().with(DayOfWeek.MONDAY);
以防万一Java 8是一种选择。
如"在 Java 8 中基于 LocalDate.now() 获取一周第一天的日期"中所述,您的用法可能会有所不同。
关于Java <8,你需要像Jack提到的那样设置setFirstDayOfWeek
。只需确保在更改星期几之前设置它,例如:
Calendar c = Calendar.getInstance();
c.setFirstDayOfWeek(Calendar.MONDAY);
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println("Date " + c.getTime());