我正在使用DATETIME
从ResultSet
读取getString
列并将其转换为java.util.Date
或java.time.ZonedDateTime
。通常,getString
返回datetime值或返回null(如果value实际上为null)但有时随机地getString
返回一个空字符串(非null),导致解析失败并抛出异常。这种情况只发生在每1000次中的一次或类似的数据集中。
我一直无法追查问题,并且导致生产系统出错。可能是什么问题?
我正在使用Mysql Java驱动程序版本6.0.6和Java 8.
编辑:
Java代码:
String temp = result.getString("dateTimeField");
mDateTimeField = (temp != null)? MysqlTimeHelper.mysqlDateTimeToDate(temp) : null;
MysqlTimeHelper:
private static final SimpleDateFormat FORMAT_MYSQL_DATETIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public static Date mysqlDateTimeToDate(String dateTime) {
try {
return FORMAT_MYSQL_DATETIME.parse(dateTime);
} catch (ParseException ex) {
return null;
}
}