如何修改我的代码只获取日期的时间部分?

时间:2012-11-28 21:19:40

标签: java date

我有以下代码:

Date time = new SimpleDateFormat("HH:mm").parse("8:00");

当我致电time.toString()时,会产生以下内容:

Thu Jan 01 08:00:00 CET 1970

有什么方法可以从中提取8:00吗?我已经远程搜索并且没有找到任何方法使用标准的SimpleDateFormat。

4 个答案:

答案 0 :(得分:3)

  

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

是的,会是 - 因为你正在呼叫Date.toStringDate值没有格式概念。

  

有什么方法可以从中提取8点吗?

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

或者,使用Joda-Time,其中LocalTime类型专门用于“时间”,并且有一个方便的parse方法。每次要转换为字符串时,仍然使用formatter,但在此之前,至少该值将更易于使用且更具描述性。

LocalTime localTime = LocalTime.parse("8:00");

要设置此格式,您可以使用类似ISODateTimeFormat.hourMinute()的内容,或者如果您可能具有更高的精确度,可能ISODateTimeFormat.hourMinuteSecond() - 请参阅所有可用选项的文档。

答案 1 :(得分:2)

回收原始SimpleDateFormat对象

SimpleDateFormat format = new SimpleDateFormat("HH:mm")
Date time = format.parse("8:00");
String outString = format.format(time);

如果你想知道,Here's some more information on DateTime Masks

答案 2 :(得分:1)

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

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

这将打印:

08:00

答案 3 :(得分:0)

java.util.Date class表示特定的时刻,精确到毫秒。

API说java.util.Date.toString()

  

将此Date对象转换为以下形式的String:
  dow mon dd hh:mm:ss zzz yyyy

为了格式化日期的使用SimpleDateFormat

    System.out.println(new SimpleDateFormat("HH:mm").format(time));