如何在 Java 中从日期获取星期几?

13 May 2025 | 5 分钟阅读

在本节中,我们将创建一个Java 程序来从日期获取星期几。

在 Java 中处理日期和时间时,会用到以下类。

  • Calendar 类:该类属于 java.util 包。它扩展了 Object 类并实现了 Serializable、cloneable、Comparable<Calendar> 接口。它提供了用于将特定时间点转换为一组日历字段(如 YEAR、MONTH、DAY、HOUR、DAY_OF MONTH 等)的方法。
  • Date 类:该类属于 util 包。它表示一个特定时间点,精度到毫秒。它允许将日期解释为年、月、日、小时、分钟和秒值。此外,还允许格式化和解析日期字符串。
  • LocalDate 类:它属于 time 包。它表示 ISO-8601 日历系统中的日期,例如 2002-08-24。它是一个不可变的日期时间对象,表示 yyyy-mm-dd 格式的日期。此外,还可以访问其他日期字段,例如一年中的第几天、星期几和一年中的第几周。例如,“2003 年 12 月 22 日”的值可以存储在 LocalDate 中。请注意,该类不存储或表示时间或时区。
  • SimpleDateFormat 类:该类属于 java.text 包。它扩展了 DateFormat 类。SimpleDateFormat 是一个具体的类,用于以对区域敏感的方式格式化和解析日期。
  • Format:Format 是一个抽象基类,用于格式化对区域敏感的信息,如日期、消息和数字。
  • DateFormat:该类属于 java.text 包。它扩展了 Format 类。

有以下几种方法可以从日期获取星期几:

  • 使用 SimpleDateFormat 类
  • 使用 DateFormatSymbols 类
  • 使用 GregorianCalendar 类

Java 程序获取日期中的星期几

获取当前日期的星期几

使用 SimpleDateFormat 类

以下 Java 程序演示了如何获取今天的日期中的星期几。

在下面的程序中,我们创建了一个 Calendar 类的实例并调用了该类的 getInstance() 方法。它返回一个 Calendar 对象,其日历字段已使用当前日期和时间进行初始化。它可能产生所有日历字段。

我们在 SimpleDateFormat 类的构造函数中解析了日期格式。在 print 语句中,我们调用了 SimpleDateFormat 类的 format() 方法,该方法将给定的 Date 格式化为日期/时间字符串,并将结果附加到给定的 StringBuffer。在 format() 方法内部,我们调用了 Calendar 类的 getTime() 方法。该方法返回一个 Date 对象,表示此 Calendar 的时间值。

Format 类是基类,包含 DateFormat 和 SimpleDatefFormat 等其他格式类。在 Format 类的构造函数中,我们传递了 EEEE,它代表星期几。在下一条语句中,我们调用了 format() 方法并解析了 Date 类的对象。该方法格式化一个对象以生成字符串。最后,打印显示星期几的字符串。

GetDayNameExample1.java

输出

Today's date: 05-10-2021
Day Name: Tuesday

让我们看另一个用于相同目的的程序。

使用 DateFormatSymbols 类

在下面的程序中,我们创建了 DateFormatSymbols() 类的构造函数,并调用了 getWeekdays() 方法,该方法返回星期的字符串。我们将这些星期存储在一个名为 dayNames[] 的数组中。

之后,我们创建了一个 Calendar 类的实例并调用了该类的 getInstance() 方法。它返回一个 Calendar 对象,其日历字段已使用当前日期和时间进行初始化。它可能产生所有日历字段。

在 print 语句中,我们调用了 Calendar 类的 get() 方法,并将 DAY_OF_WEEK 字段作为参数传递。它获取用于获取和设置星期几的数字。

因此,它会打印出星期几。

GetDayNameExample2.java

输出

Today is Tuesday

注意:您的输出可能与上面显示的有所不同。

使用 GregorianCalendar 类

Java GregorianCalendar 类属于 java.util 包。它是 Calendar 类的具体子类。它提供了标准的日历系统。

在下面的示例中,我们创建了一个 Date 类的实例,并将 GregorianCalendar 类的对象作为参数传递。在 GregorianCalendar 类的构造函数中,我们传入了想要知道星期几的年、月和日。

getTime() 方法返回此 Date 对象表示的自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数。Date 类构造函数分配一个 Date 对象并对其进行初始化,使其表示分配时的时间,精确到毫秒。

我们创建了一个 dayName() 方法,用于确定指定日期的星期几。在该方法中,我们创建了一个 SimpleDateFormat 类的构造函数,并传入了星期几的模式,即 EEEE。

GetDayNameExample3.java

输出

This date was on: Thursday

让我们看另一个用于相同目的的 Java 程序。

GetDayNameExample4.java

输出

Sat, 12 Jun 2021