Java 如何修改代码以仅获取日期的时间部分?

Java 如何修改代码以仅获取日期的时间部分?,java,date,Java,Date,我有以下代码: Date time = new SimpleDateFormat("HH:mm").parse("8:00"); 调用time.toString时,会生成以下内容: 1970年1月1日星期四08:00:00 CET 有什么办法我能从中提取出8点的信息吗?我已经搜索了很多地方,但没有找到任何使用标准SimpleDataFormat的方法 当我调用time.toString时,会生成以下内容 是的,可能是-因为您正在调用Date.toString。日期值没有格式的概念 有什么办法我

我有以下代码:

Date time = new SimpleDateFormat("HH:mm").parse("8:00");
调用time.toString时,会生成以下内容:

1970年1月1日星期四08:00:00 CET

有什么办法我能从中提取出8点的信息吗?我已经搜索了很多地方,但没有找到任何使用标准SimpleDataFormat的方法

当我调用time.toString时,会生成以下内容

是的,可能是-因为您正在调用Date.toString。日期值没有格式的概念

有什么办法我能从中提取出8点的信息吗

每当您想要转换为字符串时,都应该使用DateFormat。因此,请使用与解析相同的格式

或者,使用,它有一个特定于一天中某个时间的类型,并且有一个方便的解析方法。每次要转换为字符串时,仍然应该使用,但至少在转换之前,该值将更易于使用且更具描述性

LocalTime localTime = LocalTime.parse("8:00");
要设置格式,您可以使用类似或更精确的方法,例如ISODateTimeFormat.hourMinuteSecond-有关所有可用选项,请参阅文档

当我调用time.toString时,会生成以下内容

是的,可能是-因为您正在调用Date.toString。日期值没有格式的概念

有什么办法我能从中提取出8点的信息吗

每当您想要转换为字符串时,都应该使用DateFormat。因此,请使用与解析相同的格式

或者,使用,它有一个特定于一天中某个时间的类型,并且有一个方便的解析方法。每次要转换为字符串时,仍然应该使用,但至少在转换之前,该值将更易于使用且更具描述性

LocalTime localTime = LocalTime.parse("8:00");
若要设置此格式,您可以使用类似或精度更高的东西,例如ISODateTimeFormat.hourMinuteSecond-有关所有可用选项,请参阅文档。

类表示特定的时间瞬间,精度为毫秒

API说

将此日期对象转换为以下格式的字符串: 道指周一至dd hh:mm:ss zzz yyyy

为了格式化date的use类

类表示特定的时间瞬间,精度为毫秒

API说

将此日期对象转换为以下格式的字符串: 道指周一至dd hh:mm:ss zzz yyyy

为了格式化date的use类

回收原始SimpleDataFormat对象

如果您想知道,请回收原始SimpleDataFormat对象


如果您想知道,请使用相同的SimpleDataFormat实例将日期格式化为字符串

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
Date time = sdf.parse("8:00");
System.out.println(sdf.format(time));
这将打印:

08:00

使用相同的SimpleDataFormat实例将日期格式化为字符串

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
Date time = sdf.parse("8:00");
System.out.println(sdf.format(time));
这将打印:

08:00

从2013年2月20日星期三00:00:00 CET中提取2013年2月20日星期三也可以采用同样的方法吗?@DotNET我发布了一个链接,其中有一些关于日期时间掩码的信息。注意:SimpleDataFormat不是线程安全的。因此,您应该绝对确保您创建的是threadlocal,而不是将其指定为应用程序范围/静态/实例变量等。是否可以将其应用于从2013年2月20日星期三00:00:00 CET提取2013年2月20日星期三?@DotNET I发布了一个链接,其中有一些关于您还可以对日期时间掩码执行哪些操作的信息。注意:SimpleDataFormat不是线程安全的。因此,您应该绝对确保创建的是threadlocal,而不是将其指定为applicationwide/static/instance变量等。关于对该答案的编辑,最初的问题是关于解析字符串8:00。@BasilBourque:对,没有发现。将再次更改:关于对该答案的编辑,最初的问题是关于8:00解析字符串。@BasilBourque:对,没有发现。将再次更改它: