如何在Java中找到一个月第一天的星期几(星期一,星期二等)?

时间:2021-06-23 07:59:06

标签: java date calendar dayofweek

如何在 Java 中查找 6 月 1 日是一周中的哪一天?

3 个答案:

答案 0 :(得分:1)

使用 java.util.Date(传统时间/日期类):

Date date=new Date(); // today
Date date = new Date(2021, 06, 23); // custom
Calendar c = Calendar.getInstance();
c.setTime(date);
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK); // 3
String dayWeekText = new SimpleDateFormat("EEEE").format(date); //TUESDAY

使用 java.time.LocalDate

LocalDate localDate = LocalDate.of(2021, 06, 23); // custom
LocalDate localDate = LocalDate.now(); // today
java.time.DayOfWeek dayOfWeek = localDate.getDayOfWeek();
dayOfWeek.getValue(); // 4
dayOfWeek.toString(); // WEDNESDAY

答案 1 :(得分:1)

对于您希望星期几为 String 的情况,您可以使用以下示例中的代码:

public static void main(String[] args) {
    // provide the date (alternatively, parse it from a String)
    LocalDate firstOfJune2021 = LocalDate.of(2021, 6, 1);
    // then get the day of week by means of a DateTimeFormatter
    String dayOfWeek = firstOfJune2021.format(
                            DateTimeFormatter.ofPattern("EEEE", Locale.ENGLISH)
                       );
    // as an alternative, you can get it by chain-calling some methods
    String altDayOfWeek = firstOfJune2021.getDayOfWeek()
                                         .getDisplayName(TextStyle.FULL, Locale.ENGLISH);
    // print the results
    System.out.println(firstOfJune2021 + " was a " + dayOfWeek);
    System.out.println(firstOfJune2021 + " was a " + altDayOfWeek);
}

此代码产生以下输出:

2021-06-01 was a Tuesday
2021-06-01 was a Tuesday

有一个enum DayOfWeek,它实际上是LocalDate.getDayOfWeek()的结果类型。
如果您想使用 intenumString 表示之类的值...

答案 2 :(得分:0)

这取决于您使用的 Java 版本和类型。从 Java 8 开始,使用 LocalDate 确定星期几的简单方法如下所示:

LocalDate date = LocalDate.of(2021, 6, 1);
System.out.println(date.getDayOfWeek().getValue());

返回值从 1(星期一)到 7(星期日)编号。

可以在 How to determine day of week on Baeldung 中找到对不同方法的很好的概述。