【发布时间】:2012-03-26 07:21:09
【问题描述】:
我正在尝试将输入日期字符串转换为日期格式,然后再转换为日期时间格式。 作为测试,我输入了不正确的日期格式,但这似乎并没有引发任何解析异常并且给了我错误的输出。关于我下面的代码做错了什么有什么想法吗?
String OLD_FORMAT ="MM/dd/yyyy";
String NEW_FORMAT ="yyyyMMdd HHmmss";
SimpleDateFormat sdf = new SimpleDateFormat(OLD_FORMAT);
String oldDateString = "03/01211/2012"; //Incorrect input
Date myOldDate;
Datetime myNewDate;
try {
myOldoldDate = sdf.parse(oldDateString);
//Returns Wed Jun 24 00:00:00 IST 2015...why??
//Shouldn't this be throwing a parse exception?
} catch (ParseException e) {
logger.error("Error while parsing Date");
}
sdf.applyPattern(NEW_FORMAT);
//Converting date to datetime format
try {
myNewDate= DateHelper.toDatetime(sdf.parse((sdf.format(myOldDate))));
//Returns 2015-06-24 00:00:00.0
} catch (ParseException e) {
logger.error("Error while parsing Date");
}
【问题讨论】:
-
你能试试
sdf.setLenient(false)吗? -
刚刚解决了问题
-
@Thilo 是的..我可以试试,但它的目的是什么?抱歉,Java 新手,这就是为什么 :)
标签: java validation parsing date