我想將輸入日期字符串轉換爲日期格式,然後轉換爲日期時間格式。 作爲一個測試,我給了一個不正確的日期格式輸入,但這似乎並沒有拋出任何解析異常,並給我錯誤的輸出。有關我的代碼在做什麼錯誤的任何想法?解析日期不正確
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 2012-03-26 07:25:59
只是做了,它修復了問題 – 2012-03-26 07:27:46
@Thilo是啊..我可以嘗試,但它的目的是什麼?對不起,新來的Java多數民衆贊成在爲什麼:) – user656523 2012-03-26 07:27:51