在数据库中插入日期时Java奇怪的行为

ski*_*iwi 1 java sql date

将日期插入数据库时​​,我得到了一些奇怪的行为.

数据库使用一个date字段,我的输入是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;
    }
}
Run Code Online (Sandbox Code Playgroud)

input = "19-9-2011"它插入2010-12-26数据库时.此外,当我错误地将语言环境设置为法语时,它被插入2011-01-03,使它完全没有任何意义.

另一个后续问题:我的程序将不得不处理所有可能格式的日期,我可以获得尽可能插入日期的用户的区域设置.我将如何继续这样做?

问候.

ass*_*ias 5

年份由小型股代表y,而不是Y:

return new SimpleDateFormat("dd-MM-yyyy", Locale.ENGLISH).parse(input);
Run Code Online (Sandbox Code Playgroud)

Y (大盘)是周年.