2016-09-30 62 views
0

我試圖將6位數字的字符串轉換爲沒有使用SimpleDateFormat的日期的時間,但我在轉換時間後得到01.01.1970的日期。我怎樣才能在沒有日期的情況下將時間存儲在時間變量中?只是存儲時間變量中沒有01.01.1970的數據的時間

代碼

String timeString = "004500"; 
SimpleDateFormat formater = new SimpleDateFormat("hhmmss"); 
Date time= formater.parse(timeString); 
+0

你不能。 Date變量總是存儲日期部分 – Jens

+1

'Date'自**'01.01.1970 UTC'以來僅**毫秒。絕對沒有辦法做你想做的事情。使用['LocalTime'](https://docs.oracle.com/javase/8/docs/api/java/time/LocalTime.html)。 –

+1

「日期」對象不適合僅存儲時間(小時,分鐘,秒)。改爲使用類java.time.LocalTime。 – Jesper

回答

2

你可以使用本地時間這是你想要的。您可以分析一個標準的日期如下:

String str = "1986-04-08 12:30"; 
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); 
LocalDateTime dateTime = LocalDateTime.parse(str, formatter); 
LocalTime time - dateTime.toLocalTime(); 

如果你只有一次解析,您可以使用LocalTime.parse()method

請注意,這僅適用於從Java 8開始的版本。如果尚未使用Java 8,還可以將Joda Time作爲依賴項添加。

+0

好的我已編輯您的建議 – discipliuned

+0

謝謝。現在很清楚:) – Jens

+0

大部分java.time功能都被移植到了ThreeTen-Backport項目中的Java 6和7中,並且在ThreeTenABP項目中進一步適用於Android。 Joda-Time項目處於維護模式,團隊建議遷移到java.time。 –

相關問題