2015-01-16 4 views
2
DateTimeFormatter fmt = DateTimeFormat.forPattern("HH:mm:ss"); 
LocalTime localTime = fmt.parseLocalTime("02:51:20"); 
System.out.println("LocalTime:   "+localTime); 

Мне нужно только 02:51:20, но оно выводится как 02: 51: 20.000. Есть ли способ, который я могу удалить .000 (миллисекунды) из вывода.Преобразование строки в формат Joda LocalTime (HH: mm: ss) и удаление миллисекунд

+0

Ну, просто повторно использовать форматера для печати вместо разбора – fge

+0

Привет, спасибо за ваш ответ, и он работает. Есть ли способ, которым я могу получить это в LocalTime вместо String. Мне нужно LocalTime как 02:51:20, а не 02: 51: 20.000. – souashokraj

+0

Нет, исправлено '.toString()' 'LocalTime'. Вам нужно пройти через форматтер, чтобы иметь желаемый формат. – fge

ответ

2

Да - вам просто нужно форматировать при печати. В настоящее время вы просто используете представление по умолчанию toString(). Если вы счастливы с форматером вы уже получили, вы можете просто использовать:

System.out.println("LocalTime:   " + fmt.print(localTime)); 
1

Вы можете легко использовать DateTimeFormetter print() method. Попробуйте это;

DateTimeFormatter fmt = DateTimeFormat.forPattern("HH:mm:ss"); 
    LocalTime localTime = fmt.parseLocalTime("02:51:20"); 
    System.out.println("LocalTime      : " + localTime); 
    System.out.println("LocalTime with DateTimeFormatter : " + fmt.print(localTime)); 

И выход;

LocalTime      : 02:51:20.000 
LocalTime with DateTimeFormatter : 02:51:20 
Смежные вопросы