0

次のようなコードがあります。

Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2013-06-03 00:00:00");
        System.out.println(date);
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Calendar cal = Calendar.getInstance();
        System.out.println("Current Date Time : " + dateFormat.format(cal.getTime()));

出力: Mon Jun 03 00:00:00 EDT 2013 Current Date Time: 2013-06-24 12:52:04

最初の行に印刷された最初の日付を、2 行目に印刷された 2 番目の日付のように変更したいと考えています。これどうやってするの?前もって感謝します。

4

5 に答える 5

2

オブジェクトのtoStringメソッドが表示されます。次のような形式のオブジェクトが出力Dateされることがわかります。toStringDate

EEE MMM dd HH:mm:ss zzz yyyy

そのため、オブジェクトDateFormatをフォーマットするためのパーティーに参加しDate、希望どおりにフォーマットするという私たちの要求に応えます!

于 2013-06-24T17:08:22.810 に答える
1

SimpleDateFormat#parseマスクを指定して日付を作成していて、印刷後に「保持」されていないため、混乱していると思いますよね?

要点: オブジェクトをどのように作成しても、Date印刷時には常にデフォルトのマスクが使用されます。これはMon Jun 03 00:00:00 EDT 2013.

印刷方法を変更したい場合SimpleDateFormatは、投稿で行ったのと同じように、を使用できます。

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = dateFormat.parse("2013-06-03 00:00:00");
dateFormat.format(date);

明確にするために、SimpleDateFormat はdateオブジェクトを変更しません。その目的は、日付オブジェクトをフォーマットして解析することだけです。

于 2013-06-24T17:07:56.917 に答える
0

同様に最初のオブジェクトDateFormatを印刷するために使用します。Date

System.out.println(dateFormat.format(date));

どのようにオブジェクトをprintln()出力するかは、実装方法によって異なります。明らかに正しいアプローチではないクラスを拡張してオーバーライドしない限り、形式を変更することはできません。DateDate.toString()Date

    DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date date = dateFormat.parse("2013-06-03 00:00:00");

    System.out.println(date); // formats as: EEE MMM dd HH:mm:ss zzz yyyy

    System.out.println(dateFormat.format(date));
    System.out.println("Current Date Time: " +
                       dateFormat.format(Calendar.getInstance().getTime()));
于 2013-06-24T17:01:01.440 に答える
0

ええと、2つを組み合わせますよね?

System.out.println(dateFormat.format(date));
于 2013-06-24T17:01:43.657 に答える