1

将日期插入数据库时​​出现一些奇怪的行为。

数据库使用一个date字段,我的输入是 in String,所以我将它转换为java.util.Date并随后插入它。

转换代码:

private Date convertToDate(String input) {
    try {
        return new SimpleDateFormat("dd-MM-YY", Locale.ENGLISH).parse(input);
    } catch (ParseException ex) {
        Logger.getLogger(OutputProcessor.class.getName()).log(Level.SEVERE, null, ex);
        return null;
    }
}

input = "19-9-2011"它插入2010-12-26数据库时​​。此外,当我错误地将语言环境设置为法语时,它插入了2011-01-03,以使其根本没有任何意义。

还有另一个后续问题:我的程序必须处理所有可能格式的日期,但我可以获得最有可能插入日期的用户的语言环境。我将如何继续这样做?

问候。

4

3 回答 3

5

年份由小型大写字母表示y,而不是Y

return new SimpleDateFormat("dd-MM-yyyy", Locale.ENGLISH).parse(input);

Y(大盘)是周年。

于 2013-07-16T10:02:31.170 回答
0

如果您按照19-9-2011格式发送输入字符串,dd-MM-yyyy并为月份传递 2 位数字09而不是9

于 2013-07-16T10:02:31.443 回答
0

如果您正在与数据库日期交互,请使用 java.sql.Date。检查您的日期格式

最好的选择是使用时间戳而不是日期。将其存储很长时间(timeinmillis)。

于 2013-07-16T10:14:08.340 回答