解析字符串时出现 MysqlDataTruncation 异常 1899-12-30

问题描述 投票:0回答:1
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-301899-12-30 00 :00:00.0 这个 .0 导致错误。我要对此代码进行哪种格式或进行哪些更改才能使其正常工作?

java mysql spring-boot jpa timestamp
1个回答
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" };
© www.soinside.com 2019 - 2024. All rights reserved.