HH:mm:ss格式的个别可用时分秒

时间:2019-01-24 09:46:28

标签: java stringbuilder

我有一个对象,可以分别存储小时,分钟,秒。

public static class ETA {
        private int hours;  // 2 (single or double digit 24 hour format)
        private int minutes; // 0 (single or double digit)
        private int seconds;  // 0 (single or double digit)

// getters.. setters..
}

我需要将此时间保存到csv文件中,并以"02:00:00"HH:mm:ss的格式将其正确的字符串设置为NOT as "2:0:0"

我尝试使用StringBuilder append()方法,但是想出了非常混乱的代码。这是我尝试过的...

ETA e = new ETA();
StringBuilder time = new StringBuilder();
if (e.getHour() < 10) {
time.append("0" + e.getHour());
} else {
time.append(e.getHour());
}
// similarly for minute and seconds, and then returned time.

对我来说似乎不太好。那么我应该如何更好地处理它?<​​/ p>

2 个答案:

答案 0 :(得分:5)

类似这样的东西:

String.format("%02d:%02d:%02d", e.getHours(), e.getMinutes(), e.getSeconds())

答案 1 :(得分:0)

如果要使用模式,可以先将ETA转换为LocalTime,然后使用DateTimeFormatter进行格式化:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");

LocalTime t = LocalTime.of(5, 12, 42); //use your getters here
String s = formatter.format(t);
System.out.println(s);

此值还会验证日期,即,如果其中一个值超出范围,则会抛出java.time.DateTimeException

输出:

05:12:42