And*_*wVP 7 java parse-error simpledateformat
我需要使用日期模式"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".
我无法更改字符串日期的输入格式.
我怎么能避免呢?
Jon*_*eet 10
你有没有试过打电话setLenient(false)给你SimpleDateFormat?
import java.util.*;
import java.text.*;
public class Test {
public static void main(String[] args) throws Exception {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
format.setLenient(false);
Date date = format.parse("2011-06-1211"); // Throws...
System.out.println(date);
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,我还建议您设置时区和区域设置SimpleDateFormat.(或者,使用Joda Time代替...)
| 归档时间: |
|
| 查看次数: |
6333 次 |
| 最近记录: |