【发布时间】:2012-05-23 06:47:30
【问题描述】:
我需要使用日期模式“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());
}
}
当我在 myDate 中输入像“2011-06-12”这样的字符串时,我会得到输出“Thu Sep 29 00:00:00 EEST 2011”,这很好。
当我发送像“2011-0612”这样的错误字符串时,我收到了预期的错误。
当我尝试传递一个仍然有两个“连字符”但位数错误的字符串时,问题就开始了。 示例:
输入字符串“2011-06-1211” 结果“2014 年 9 月 23 日星期二 00:00:00 EEST”。
输入字符串“2011-1106-12” 结果“2 月 12 日星期一 00:00:00 EET 2103”。
我无法更改字符串日期的输入格式。
如何避免?
【问题讨论】:
-
我不确定“2011-06-12”作为 myDate 中的输入如何得到输出“Thu Sep 29 00:00:00 EEST 2011”是好的。你应该得到 6 月 12 日的输出 - 而不是 9 月 29 日...
标签: java simpledateformat parse-error