Java 只需在时间变量中存储时间,而不存储01.01.1970的数据

Java 只需在时间变量中存储时间,而不存储01.01.1970的数据,java,Java,我正在尝试使用SimpleDataFormat将一个6位字符串转换为不带日期的时间,但在转换时间后,我得到的日期是1970年1月1日。我怎样才能在没有日期的情况下获取存储在时间变量中的时间 代码 String timeString = "004500"; SimpleDateFormat formater = new SimpleDateFormat("hhmmss"); Date time= formater.parse(timeString ); 您可以使用您想要的LocalTime。您可

我正在尝试使用SimpleDataFormat将一个6位字符串转换为不带日期的时间,但在转换时间后,我得到的日期是1970年1月1日。我怎样才能在没有日期的情况下获取存储在时间变量中的时间

代码

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

您可以使用您想要的LocalTime。您可以像这样解析标准日期:

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()


请注意,这仅从Java8开始提供。如果您还没有使用Java 8,您还可以添加为依赖项。

您可以使用您想要的LocalTime。您可以像这样解析标准日期:

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()


请注意,这仅从Java8开始提供。如果您还没有使用Java 8,还可以添加依赖项。

您不能。日期变量始终存储日期部分A
Date
01.01.1970 UTC
开始,通常仅为毫秒。绝对没有办法做你想做的事。使用.a
Date
对象不适合仅存储时间(小时、分钟、秒)。请改用class
java.time.LocalTime
。@Jesper您应该提到,这仅在java8和更高版本中可用。如果您使用的是JDK 7或更高版本,请使用-或更高版本,升级到java 8。(Java8已经不是什么新鲜事了!)你不能。日期变量始终存储日期部分A
Date
01.01.1970 UTC
开始,通常仅为毫秒。绝对没有办法做你想做的事。使用.a
Date
对象不适合仅存储时间(小时、分钟、秒)。请改用class
java.time.LocalTime
。@Jesper您应该提到,这仅在java8和更高版本中可用。如果您使用的是JDK 7或更高版本,请使用-或更高版本,升级到java 8。(Java 8不再那么新了!)好的,我已经编辑了你的建议谢谢。现在很清楚:)在ThreeTen Backport项目中,java.time的大部分功能都被移植到了Java6和Java7,并在ThreeTenABP项目中进一步适应了Android。Joda Time项目处于维护模式,团队建议迁移到java.Time.ok,我已经编辑了您的建议谢谢。现在很清楚:)在ThreeTen Backport项目中,java.time的大部分功能都被移植到了Java6和Java7,并在ThreeTenABP项目中进一步适应了Android。Joda Time项目处于维护模式,团队建议迁移到java.Time。