0

次の日付の日付形式を変更するにはどうすればよいですか

Thu May 17 00:00:00 GMT+05:30 2012

2012-05-17 00:00:00

文字列ではなく日付として必要です。私は使っている

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("")

しかし、それは結果を与えていません。実際には、日付ごとに値を保存しています。したがって、誰かが同じ日付のデータを再度入力すると、上書きされます。日付オブジェクトとして hibernate クエリに渡すと、結果が得られます。しかしいつもではない。まれに、同じ日付の重複データを挿入するという、再度挿入することがあります。入力する前に、その日付のデータが存在するかどうかを確認するメソッドを追加しています。criteria.add(Restrictions.eq("date", date));

4

4 に答える 4

1
String str ="Thu May 17 00:00:00 GMT+05:30 2012";

        DateFormat old_format = new SimpleDateFormat("EEE MMM dd hh:mm:ss z yyyy");
        Date newDate = null;
        try {
            newDate = old_format.parse(str);
        } catch (ParseException e) {
            e.printStackTrace();
        }

        DateFormat new_format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String date = new_format.format(newDate);

        System.out.println("==>"+date);
于 2012-05-16T10:47:59.167 に答える
1

ここで文字列操作を行うべきではありません。コメントで、これはデータベースの日付/時刻フィールドであると言っていましたが、コードに文字列変換が含まれるのはなぜですか?

JDBC でパラメーターを などとして指定しjava.sql.Datejava.sql.Timestampその方法でフェッチします。文字列変換を行わないでください。ツールでデータベースにクエリを実行するときに表示される形式は無視してください。結果が「形式」であるとはまったく考えないでください。それらは単なる日付です。

于 2012-05-18T12:40:10.060 に答える
0

今とまったく同じように実行しますが、に変更parse("")しますformat(theDate)

theDateフォーマットするDateオブジェクトであること

http://docs.oracle.com/javase/6/docs/api/java/text/DateFormat.html#format(java.util.Date)を参照してください

于 2012-05-16T10:47:34.347 に答える
0
String date = "Thu May 17 00:00:00 GMT+05:30 2012";
String oldFormat = "EEE MMM dd hh:mm:ss z yyyy";
String newFormat = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat sdf1 = new SimpleDateFormat(oldFormat);
SimpleDateFormat sdf2 = new SimpleDateFormat(newFormat);
sdf2.format(sdf1.parse(date))
于 2012-05-21T11:14:03.003 に答える