小编And*_*wVP的帖子

使用SimpleDateFormat,Java解析日期不正确

我需要使用日期模式"yyyy-MM-dd"从输入字符串解析日期,如果日期将以任何其他格式出现,则抛出错误.

这是我解析日期的代码段:

private void validateDate() throws MyException {
  Date parsedDate;
  String DATE_FORMAT = "yyyy-MM-dd";
  try{
    parsedDate = new SimpleDateFormat(DATE_FORMAT).parse(getMyDate());
    System.out.println(parsedDate);
  } catch (ParseException e) {
    throw new MyException(“Error occurred while processing date:” + getMyDate());
  }

}
Run Code Online (Sandbox Code Playgroud)

当我在myDate中输入像"2011-06-12"这样的字符串时,我会得到输出"Thu Sep 29 00:00:00 EEST 2011",这很好.

当我发送一个不正确的字符串,如"2011-0612"时,我收到错误的预期.

当我试图传递一个仍然有两个"连字符"但字符数错误的字符串时,问题就开始了.例:

输入字符串"2011-06-1211"结果"Tue Sep 23 00:00:00 EEST 2014".

输入字符串"2011-1106-12"结果"Mon Feb 12 00:00:00 EET 2103".

我无法更改字符串日期的输入格式.

我怎么能避免呢?

java parse-error simpledateformat

7
推荐指数
1
解决办法
6333
查看次数

标签 统计

java ×1

parse-error ×1

simpledateformat ×1