单独可用的时分秒到 HH:mm:ss 格式

Individually available Hour Minute Seconds to HH:mm:ss format

我有一个单独存储小时、分钟、秒的对象。

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:ssNOT 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.

我觉得不太好。那么我应该如何以更好的方式处理它?

像这样:

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

如果您想使用该模式,您可以先将 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