You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java如何从ArrayList存储的yyyy-MM-dd字符串日期获取对应星期几

解决方案

完全可以实现转换,Java 8及以上版本可以直接用内置的java.time包完成,无需引入第三方依赖,也避免了旧版Date、Calendar类的线程安全问题与易用性缺陷。

核心实现步骤

  • 定义匹配yyyy-MM-dd格式的日期解析器
  • 定义输出英文全称星期的格式化器,必须指定英文Locale,否则输出会随运行环境默认语言变化
  • 遍历ArrayList中的日期字符串,依次完成解析与格式化转换

完整代码示例

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Locale;

public class DateToWeekday {
    public static void main(String[] args) {
        // 示例ArrayList
        ArrayList<String> dateList = new ArrayList<>();
        dateList.add("2021-04-01");
        dateList.add("2021-05-03");
        dateList.add("2020-06-17");

        // 定义格式化器
        DateTimeFormatter dateParser = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        DateTimeFormatter weekdayFormatter = DateTimeFormatter.ofPattern("EEEE", Locale.ENGLISH);

        // 遍历转换
        for (String dateStr : dateList) {
            LocalDate date = LocalDate.parse(dateStr, dateParser);
            String weekday = date.format(weekdayFormatter);
            System.out.println(dateStr + " 对应的星期为:" + weekday);
        }
    }
}

输出结果

2021-04-01 对应的星期为:Thursday
2021-05-03 对应的星期为:Monday
2020-06-17 对应的星期为:Wednesday

注意事项

  • 如果输入的日期字符串可能存在格式错误,建议添加try-catch捕获DateTimeParseException异常,避免程序崩溃
  • 若需要输出其他语言的星期名称,修改Locale参数即可,比如Locale.CHINA会输出中文星期名

内容的提问来源于stack exchange,提问作者Brian McCanaugh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 23:27:04