java 把 String 时间转 Date 为什么会报错?

    @Test
    void test() {
        String dateString = "April 25, 2024 20:28";
        SimpleDateFormat formatter = new SimpleDateFormat("MMMM dd, yyyy HH:mm");
        try {
            Date date = formatter.parse(dateString);
            System.out.println(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }

错误 java.text.ParseException: Unparseable date: "April 25, 2024 20:28"
是不是我格式不对,应该怎么写

阅读 979
1 个回答
✓ 已被采纳

你没有搞清楚自己的环境,SimpleDateFormatMMMM与区域有关系呢,我猜测你是中文的环境,你的操作系统的区域是上海,那么针对日期April 25, 2024 20:28格式化为MMMM dd, yyyy HH:mm格式,应该是九月 29, 2024 14:47

所以你的代码需要对格式化器SimpleDateFormat设置localeLocale.ENGLISH

String dateString = "April 25, 2024 20:28";
SimpleDateFormat formatter = new SimpleDateFormat("MMMM dd, yyyy HH:mm", Locale.ENGLISH);
try {
//  String format = formatter.format(new Date());
//  System.out.println(format);
    Date date = formatter.parse(dateString);
    System.out.println(date);
} catch (ParseException e) {
    e.printStackTrace();
}

这就涉及到国际化i18n的一些东西了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏