将String转换为Joda LocalTime格式(HH:mm:ss)并删除毫秒

时间:2015-01-16 17:29:43

标签: java jodatime

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(毫秒)。

3 个答案:

答案 0 :(得分:3)

使用

修复了此问题
DateTime time = new DateTime();
DateTimeFormatter format = DateTimeFormat.forPattern("HH:mm:ss");
String localTime = time != null ? format.print(new LocalTime(time.getHourOfDay(), 
time.getMinuteOfHour(), time.getSecondOfMinute())) : null;

DateTime和LocalTime来自joda

答案 1 :(得分:2)

是的 - 您只需要在打印时进行格式化。目前,您只是使用默认的toString()表示。如果您对已经使用的格式化程序感到满意,可以使用:

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

答案 2 :(得分: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