0

在我的情况下,周从周一到周日开始。我想获得当前周的周一日期。我使用以下代码获取星期一日期。

        Calendar c = Calendar.getInstance();
        c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
        System.out.println("Date " + c.getTime());

它适用于除周日以外的所有日子,如果当天是周日,它将给出下周的周一日期。即使是周日,是否可以使用 java.util.Date/Calendar API 获取当前的周一日期。

任何帮助表示赞赏。

4

2 回答 2

2

您可以告诉Calendar全班应将一周中的哪一天视为第一天。尝试添加以下行:

c.setFirstDayOfWeek(Calendar.MONDAY);
于 2017-04-13T08:56:37.387 回答
1
LocalDateTime thisWeeksMonday = LocalDateTime.now().with(DayOfWeek.MONDAY);

以防万一 Java 8 是一个选项。

如“基于 Java 8 中的 LocalDate.now() 获取一周的第一天的日期”中所述,您的用法可能会有所不同。

关于 Java <8,您需要setFirstDayOfWeek按照 Jack 所述进行设置。请确保在更改星期几之前设置它,例如:

Calendar c = Calendar.getInstance();
c.setFirstDayOfWeek(Calendar.MONDAY);
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println("Date " + c.getTime());
于 2017-04-13T09:04:54.707 回答