java如何输出星期

java如何输出星期

作者:Joshua Lee发布时间:2026-01-30阅读时长:0 分钟阅读次数:12

用户关注问题

Q
如何在Java中获取当前日期对应的星期几?

我想用Java程序获取当前日期是星期几,应该使用什么方法或类?

A

使用Java的Calendar或LocalDate获取星期信息

可以使用java.util.Calendar类的get方法,传入字段Calendar.DAY_OF_WEEK来获取当前的星期几,返回值是一个整数,范围从1(星期日)到7(星期六)。例如:

Calendar calendar = Calendar.getInstance();
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);

另外,Java 8及以上版本推荐使用java.time.LocalDate类,通过getDayOfWeek()方法获取DayOfWeek枚举类型,然后调用getValue()或name()获得详细信息:

LocalDate date = LocalDate.now();
DayOfWeek dayOfWeek = date.getDayOfWeek();
System.out.println(dayOfWeek.getValue()); // 1-7(1代表星期一)
Q
如何格式化星期几输出为中文?

在Java程序中获取的星期是数字或英文,我想将它转换成中文星期,该怎么做?

A

使用SimpleDateFormat或者自定义映射实现中文星期输出

可以利用java.text.SimpleDateFormat类定义日期格式字符串“E”或“EEEE”来格式化星期几,默认会根据系统语言环境输出相应语言。设置为中文环境后,例如:

SimpleDateFormat sdf = new SimpleDateFormat("EEEE", Locale.CHINESE);
String weekDay = sdf.format(new Date());
System.out.println(weekDay); // 输出例如:星期三

如果环境不是中文,也可以自己定义一个映射数组,将数字星期映射成中文,比如:

String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
Calendar calendar = Calendar.getInstance();
int day = calendar.get(Calendar.DAY_OF_WEEK) - 1;
if(day < 0) day = 0;
System.out.println(weekDays[day]);
Q
Java中如何转换星期数为更易读的字符串形式?

获取到的星期一般是数字,我想要输出更加友好和易懂的格式,比如“星期一”,有哪些方法?

A

将数字类型星期转换成字符串形式的策略

可以通过Java 8引进的java.time.DayOfWeek枚举类,它提供了名称方法,同时可以结合Locale实现不同语言环境下的输出。

示例代码:

DayOfWeek day = LocalDate.now().getDayOfWeek();
// 获取英文名称
String dayName = day.name();
// 或者通过DateTimeFormatter格式化
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEEE", Locale.CHINESE);
String dayChinese = day.getDisplayName(TextStyle.FULL, Locale.CHINESE);
System.out.println(dayChinese); // 输出中文星期名称

此外,Java的旧版Date类和Calendar类结合SimpleDateFormat也可以实现类似效果,具体可以根据项目需求选择方案。