2016-09-30 61 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。 –

相关问题