1

私は次のコードを持っています:

Date time = new SimpleDateFormat("HH:mm").parse("8:00");

を呼び出すtime.toString()と、次のようになります。

Thu Jan 01 08:00:00 CET 1970

そこから抽出する方法はあります8:00か?私は広範囲にわたって検索しましたが、標準のSimpleDateFormatを使用してそれを行う方法を見つけられませんでした。

4

4 に答える 4

3

time.toString()を呼び出すと、次のようになります。

はい、そうなるでしょう-あなたが呼んでいるからですDate.toString。値には形式のDate概念はありません。

8:00だけを抽出する方法はありますか?

文字列に変換する場合は常に、を使用する必要がありますDateFormat。したがって、解析したのと同じ形式を使用してください。

または、 「時刻」専用のタイプで便利な方法のJoda-Timeを使用します。文字列に変換するたびにフォーマッタを使用する必要がありますが、少なくともその値は操作が簡単で、それ以前はよりわかりやすくなります。LocalTimeparse

LocalTime localTime = LocalTime.parse("8:00");

これをフォーマットするには、次のようなものを使用できます。ISODateTimeFormat.hourMinute()精度が高い場合は、おそらく、ISODateTimeFormat.hourMinuteSecond()利用可能な多くのオプションすべてについてドキュメントを参照してください。

于 2012-11-28T21:21:14.980 に答える
2

SimpleDateFormat元のオブジェクトをリサイクルする

SimpleDateFormat format = new SimpleDateFormat("HH:mm")
Date time = format.parse("8:00");
String outString = format.format(time);

ご参考までに、DateTimeマスクに関する詳細情報を以下に示します。

于 2012-11-28T21:23:39.403 に答える
1

同じSimpleDateFormatインスタンスを使用して、日付を文字列にフォーマットします。

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
Date time = sdf.parse("8:00");
System.out.println(sdf.format(time));

これは印刷されます:

08:00
于 2012-11-28T21:24:13.133 に答える
0

java.util.Dateクラスは、ミリ秒の精度で特定の瞬間を表します。

APIはjava.util.Date.toString()と言います

このDateオブジェクトを次の形式の文字列に変換します:
dow mon dd hh:mm:ss zzz yyyy

日付の使用をフォーマットするには、SimpleDateFormatクラスを使用します

    System.out.println(new SimpleDateFormat("HH:mm").format(time));
于 2012-11-28T21:22:33.227 に答える