将String及时转换为没有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中。 如果你举一个例子会更好。

谢谢。

使用您用于解析它的相同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以确保只“看到”所需的部件。

这也有效

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

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" );