将String及时转换为没有Date的Time对象

时间:2011-03-27 17:42:51

标签: java date time

我遇到了将String time转换为Time对象的问题,因为它与Date一起打印。这是我的代码。

String time = "15:30:18";

DateFormat sdf = new SimpleDateFormat("hh:mm:ss");
Date date = sdf.parse(time);

System.out.println("Time: " + date);

如何在java中只转换和打印没有日期的时间。如果你能举一个例子会更好。

谢谢。

3 个答案:

答案 0 :(得分:25)

使用您用于解析它的SimpleDateFormat

String time = "15:30:18";

DateFormat sdf = new SimpleDateFormat("hh:mm:ss");
Date date = sdf.parse(time);

System.out.println("Time: " + sdf.format(date));

请记住,Date对象始终表示组合的日期/时间值。它无法正确表示仅限日期或仅限时间的值,因此您必须使用正确的DateFormat以确保只“看到”您想要的部分。

答案 1 :(得分:9)

这也适用

String t = "00:00:00" 
Time.valueOf(t);

答案 2 :(得分:4)

Joda-Time | java.time

如果您想要一个没有日期且没有时区的仅限时间值,那么您必须使用Joda-Time库或Java 8中捆绑的新java.time包(受Joda-Time启发)

这两个框架都提供LocalTime类。

在Joda-Time 2.4 ......

LocalTime localTime = new LocalTime( "15:30:18" );

在java.time ...

LocalTime localTime = LocalTime.parse( "15:30:18" );