我有一个对象,可以分别存储小时,分钟,秒。
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>
答案 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