为了账号安全,请及时绑定邮箱和手机立即绑定

在java中解析日期月日,年

在java中解析日期月日,年

蛊毒传说 2021-11-11 17:43:15
我正在尝试指定一个函数来将String表单中的日期解析为Date.String startDate = "14-08-2014";String endDate = "21/08/2020";String middleDate = "Sep 27, 2018";SimpleDateFormat sdf[] = new SimpleDateFormat[] {new SimpleDateFormat("dd/MM/yyyy"), new SimpleDateFormat("dd-MM-yyyy"), new SimpleDateFormat("MMM dd, yyyy")  };Date date = null;for (DateFormat formatter : sdf) {    try {        date = formatter.parse(middleDate);        break;    } catch (ParseException e) {}System.out.println(date);它适用于除最后一种格式之外的两种格式。如果它使用middleDate它完成Date等于null。谁能告诉我出了什么问题?
查看完整描述

2 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

有一个使用java.time的解决方案,但仍然需要使用LOCALE.ENGLISH。我不知道有什么方法可以让它在不使用 LOCALE 的情况下工作...


 String input = "Mar 23, 1994";

    try {

        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMM dd, yyyy").withLocale(Locale.ENGLISH);

        LocalDate date = LocalDate.parse(input, formatter);

        System.out.printf("%s%n", date);

    }

    catch (DateTimeParseException exc) {

        System.out.printf("%s is not parsable!%n", input);

        throw exc;      // Rethrow the exception.

    }


查看完整回答
反对 回复 2021-11-11
?
慕仙森

TA贡献1827条经验 获得超7个赞

您的解析器是正确的,您的月份应该是“设置”


"Set 27, 2018"



Jan Feb Mar Apr May Jun Jul Aug Set Oct Nov Dec


查看完整回答
反对 回复 2021-11-11
  • 2 回答
  • 0 关注
  • 121 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信