public Timestamp convertFromDate(String fromDate) throws ParseException {
String[] possibleFormats = { "dd/MM/yyyy", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd" };
ParseException lastException = null;
for (String format : possibleFormats) {
try {
SimpleDateFormat dateFormat = new SimpleDateFormat(format);
dateFormat.setLenient(false);
Date parsedDate = dateFormat.parse(fromDate);
return new Timestamp(parsedDate.getTime());
} catch (ParseException e) {
lastException = e;
}
}
throw lastException;
}
这是我用来解析可能的时间戳格式的字符串的代码,但是当它通过每个字符串时,它会被解析,但会生成一个时间戳,例如字符串1899-12-30到1899-12-30 00 :00:00.0 这个 .0 导致错误。我要对此代码进行哪种格式或进行哪些更改才能使其正常工作?
您需要以您可能的格式进行时间格式化,以便在 Mysql 中也能处理小数秒。 模式为“yyyy-MM-dd HH:mm:ss.S”。 将您可能的格式更改为
String[] possibleFormats = { "dd/MM/yyyy", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss.S" };