0

今日の日付をyyyy-mm-ddの形式で保存したいと思います。保存する前に、今日の日付を取得してフォーマットし、フォーマットされた文字列を再度解析して日付を取得しました。それは私が望むものとは異なるフォーマットで出力日を与えます。日付を取得し、「yyyy-mm-dd」でフォーマットしてから、もう一度日付に変換し、「yyyy-mm-dd」のフォーマットで出力する方法を教えてください。以下のコードを見つけて、どこが間違っているか教えてください。

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date date = new java.util.Date();
java.util.Date date1;
String datestring=dateFormat.format(date);

try {           
    date1=dateFormat.parse(datestring);
    System.out.print(date1);
} catch (ParseException ex) {
     Logger.getLogger(accordcclass.class.getName()).log(Level.SEVERE, null, ex);
}

上記のコードの出力はThuMar07 00:00:00 GMT 2013です。ただし、2013-01-07として出力する必要があります。

4

3 に答える 3

6

私は同じ問題を抱えていました、これは私がやったことです:

DateFormat inputDateFormat = new SimpleDateFormat("dd-MMM-yyyy HH:mm");
DateFormat outputDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
System.out.println(outputDateFormat.format(inputDateFormat.parse("09-SEP-2013 10:00")));

そうすれば、日付を元の形式で解析し、データベースと互換性のある形式で出力できます。

誰かが前に言及したように PreparedStatement を使用する可能性がありますが、私はしたくありません。

于 2013-09-08T14:38:17.567 に答える
5

オブジェクトを使用して印刷しないでください。変数Dateを直接使用してください。datestringを使用してフォーマットされるDatewill 呼び出しを使用します。toStringLocale

編集:変数をフォーマットで保存したい場合はDate、そのようには機能しません。ADateは形式を保持せず、時間を表すだけです。GUI、コンソール、またはその他の場所でどのように表示するかは、現在の形式とは異なる形式にしたい場合に、形式を指定する必要がある場所ですLocale

于 2013-03-08T14:24:45.767 に答える
0

DateFormat を使用してフォーマットと再解析を行っています。

再解析する必要はありません。DateFormat を使用してフォーマットするだけです。

  DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
  java.util.Date date = new java.util.Date();
  String datestring=dateFormat.format(date);
  System.out.println( datestring );
于 2013-03-08T14:27:48.053 に答える