1

データベースに日付を挿入すると、奇妙な動作が発生します。

データベースは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;
    }
}

データベース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-yyyy2 桁を渡します。099

于 2013-07-16T10:02:31.443 に答える
0

データベースの日付を操作する場合は、java.sql.Date を使用します。日付形式を確認してください

最良のオプションは、日付の代わりにタイムスタンプを使用することです。長く保存します (timeinmillis)。

于 2013-07-16T10:14:08.340 に答える