Java中 LocalDate getDayOfWeek 怎么获取星期几 Enum
Java8中LocalDate的getDayOfWeek()返回类型安全的DayOfWeek枚举,可调用getDisplayName()获取中文或英文名称,getValue()获取ISO-8601数值(周一为1,周日为7)。需注意不同地区周起始日差异,该枚举支持switch语句和枚举比较,便于日期处理。
要在 Ja va 8 中获取一个日期的星期几,最直接的方式就是调用 LocalDate.getDayOfWeek()。它返回的是 ja va.time.DayOfWeek 枚举,而不是数字或字符串,类型安全且语义清晰。拿到这个枚举之后,可以进一步转成中文、英文名称,或者获取 ISO-8601 标准下的数值(周一为 1,周日为 7)。支持 switch 语句和直接枚举比较,用起来非常顺手。

直接获取 DayOfWeek 枚举
Ja va 8 的 LocalDate 提供了 getDayOfWeek() 方法,返回标准的 ja va.time.DayOfWeek 枚举实例(如 MONDAY、TUESDAY 等)。有几个关键点值得注意:
- 返回值本身就是枚举,不是数字也不是字符串,类型安全,语义一目了然。
- 不需要额外解析或映射,绕开了手动处理 1~7 时常见的歧义(比如周一是 1 还是 7 的问题)。
- 举个例子:
LocalDate.now().getDayOfWeek()可能返回DayOfWeek.WEDNESDAY,直接就能用。
常用操作:转为中文、数字或英文名
虽然枚举用起来很舒服,但最终展示给用户时往往需要中文或英文名称。枚举自带的方法就能搞定:
dayOfWeek.getDisplayName(TextStyle.SHORT, Locale.CHINA)→ 输出“周三”。dayOfWeek.getDisplayName(TextStyle.FULL, Locale.US)→ 输出“Wednesday”。dayOfWeek.getValue()→ 返回 1(周一)到 7(周日),完全符合 ISO-8601 标准。
注意周起始日差异
DayOfWeek 严格遵循 ISO-8601:周一是一周的第一天(值为 1),周日是第七天(值为 7)。这和部分地区习惯(比如美国以周日为一周开始)并不一致。这里有两个容易踩的坑:
- 千万别拿
Calendar.SUNDAY来类比,两者的数值和含义完全不兼容。 - 如果业务要求“周日为第一天”,需要自己做映射。一个常见的做法是:
(dayOfWeek.getValue() % 7) + 1,这样周日=1,周一=2,依此类推。
简单判断星期几的写法
利用枚举的可读性和对 switch 的天然支持,判断星期几可以写得非常清晰:
switch (localDate.getDayOfWeek()) { case SATURDAY: case SUNDAY: ... }直接处理周末。localDate.getDayOfWeek() == DayOfWeek.FRIDAY直接比较,语义明确,一看就知道是判断周五。- 尽量避免用
localDate.getDayOfWeek().getValue() == 5这种写法,可读性差,而且容易写错数值。
整体来说,这功能不复杂,但容易忽略一个关键点:拿到的就是枚举,用好它自带的方法和语义,比自己造轮子要可靠得多。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。















