2011-03-27 3 views
7

У меня возникла проблема с преобразованием объекта String time to 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. будет лучше, если бы вы могли привести пример.

спасибо.

ответ

23

Используйте тот же 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, чтобы убедиться, что вы только «видите» нужные вам детали.

8

Это работает хорошо

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

Joda-Time | java.time

Если вы хотите иметь значение времени без даты и без часового пояса, то вы должны использовать либо библиотеку Joda-Time, либо новый пакет java.time, поставляемый в Java 8 (вдохновленный Joda-Time) ,

Оба эти рамки предлагают класс LocalTime.

В Joda-Time 2.4 ...

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

В java.time ...

LocalTime localTime = LocalTime.parse("15:30:18"); 
Смежные вопросы