0

次のコードを使用して現在の日付と時刻を取得していますが、出力が期待したものではなく、データベースに保存できません。

出力 >> 現在: 2013 年 3 月 5 日火曜日 09:58:26 EST

期待される出力 >> 現在: 2013-03-05 9:58:26

 .....{  
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        SimpleDateFormat parseFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = new Date();
        try {
            System.out.println("current: " +parseFormat.parse(dateFormat.format(date)));
            return parseFormat.parse(dateFormat.format(date));
        } catch (ParseException ex) {
            Logger.getLogger(ConstructionModel.class.getName()).log(Level.SEVERE, null, ex);
        }
        return date;
     }
        ......

        ps.setDate(....) <<< failed

データベース

 name   type
 mydate Date
4

3 に答える 3

3

フォーマットする前に解析する必要はありません:

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date date = new Date();

String frmtdDate = dateFormat.format(date);

System.out.println("frmtdDate: " + frmtdDate);

ただし、日付を DB ステートメントに適合させようとしている場合は、テキスト形式で行うのではなく、代わりに、java.sql.Dateまたはjava.sql.Timestamp

于 2013-03-04T23:09:07.703 に答える
2

formatを取り、Dateフォーマットされたを返しますStringparseフォーマットされたオブジェクトを受け取り、オブジェクトStringを返しDateます。あなたがそうするとき、あなたはにそして再びparseFormat.parse(dateFormat.format(date))に変換Dateしています。印刷される値は、フォーマットされた文字列の代わりにによって提供されるデフォルトの表現です。StringDateDate.toString()

       System.out.println("current: " +dateFormat.format(date));
于 2013-03-04T23:12:45.507 に答える
2

データベースに保存するには、sql タイムスタンプを使用する必要があります。java.util.Date をjava.sql.Timestampに変換します。

ps.setTimestamp(new java.sql.Timestamp(myDate.getTime()));
于 2013-03-04T23:10:07.220 に答える