私は次のコードを持っています:
Date time = new SimpleDateFormat("HH:mm").parse("8:00");
を呼び出すtime.toString()
と、次のようになります。
Thu Jan 01 08:00:00 CET 1970
そこから抽出する方法はあります8:00
か?私は広範囲にわたって検索しましたが、標準のSimpleDateFormatを使用してそれを行う方法を見つけられませんでした。
time.toString()を呼び出すと、次のようになります。
はい、そうなるでしょう-あなたが呼んでいるからですDate.toString
。値には形式のDate
概念はありません。
8:00だけを抽出する方法はありますか?
文字列に変換する場合は常に、を使用する必要がありますDateFormat
。したがって、解析したのと同じ形式を使用してください。
または、 「時刻」専用のタイプで便利な方法のJoda-Timeを使用します。文字列に変換するたびにフォーマッタを使用する必要がありますが、少なくともその値は操作が簡単で、それ以前はよりわかりやすくなります。LocalTime
parse
LocalTime localTime = LocalTime.parse("8:00");
これをフォーマットするには、次のようなものを使用できます。ISODateTimeFormat.hourMinute()
精度が高い場合は、おそらく、ISODateTimeFormat.hourMinuteSecond()
利用可能な多くのオプションすべてについてドキュメントを参照してください。
SimpleDateFormat
元のオブジェクトをリサイクルする
SimpleDateFormat format = new SimpleDateFormat("HH:mm")
Date time = format.parse("8:00");
String outString = format.format(time);
同じSimpleDateFormatインスタンスを使用して、日付を文字列にフォーマットします。
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
Date time = sdf.parse("8:00");
System.out.println(sdf.format(time));
これは印刷されます:
08:00
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));