我遇到了将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中只转换和打印没有日期的时间。如果你能举一个例子会更好。
谢谢。答案 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 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" );