2011-03-27 5 views
7

Dateと一緒に印刷されるため、StringオブジェクトからTimeオブジェクトへの変換に問題が発生しました。これは私のコードです。日付のないTimeオブジェクトのTimeオブジェクトへの変換

String time = "15:30:18"; 

DateFormat sdf = new SimpleDateFormat("hh:mm:ss"); 
Date date = sdf.parse(time); 

System.out.println("Time: " + date); 

日付をjavaに入れないで時間を変換して印刷する方法。あなたが例を挙げることができれば、それはより良いでしょう。

ありがとうございました。

答えて

23

使用あなたがそれを解析するために使用したのと同じSimpleDateFormat

String time = "15:30:18"; 

DateFormat sdf = new SimpleDateFormat("hh:mm:ss"); 
Date date = sdf.parse(time); 

System.out.println("Time: " + sdf.format(date)); 

は覚えているが、Dateオブジェクトは常に組み合わせた日付/時刻値を表しています。これは、日付のみまたは時刻のみの値を正しく表すことができないため、正しい部品を「参照」するためには、正しいDateFormatを使用する必要があります。

8

これが機能するだけでなく

String t = "00:00:00" 
Time.valueOf(t); 
3

ジョダタイム| java.time

日付と時間帯を持たない時刻のみの値を使用する場合は、Joda-TimeライブラリまたはJava 8にバンドルされている新しいjava.timeパッケージ(Joda-Timeから影響を受ける)を使用する必要があります。 。

これらの両方のフレームワークは、LocalTimeクラスを提供します。ジョダタイム2.4では

... java.timeで

LocalTime localTime = new LocalTime("15:30:18"); 

...

LocalTime localTime = LocalTime.parse("15:30:18"); 
関連する問題