我有一个整数:
int i = 110631;
...我希望将其转换为“11:06:31”。
我尝试使用SimpleDateFormat:
SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
dateFormat.format(i);
......但它正在返回19:01:50。
答案 0 :(得分:2)
您可以使用除法运算符和模运算符将整数拆分为小时,分钟和秒,然后连接成字符串:
int i = 110631;
int hours = i / 10000;
int minutes = (i % 10000) / 100;
int seconds = i % 100;
String output = String.format("%02d:%02d:%02d", hours, minutes, seconds);
答案 1 :(得分:0)
您从代码中获得了什么 - 只是将Integer转换为Date。 SimpleDateFormat重载"格式" method包含下一个代码行,它描述了你的结果并在你的情况下实际调用
format(new Date(((Number)obj).longValue()), toAppendTo, fieldPosition);
要获得您真正想要的内容,请考虑使用以下代码:
Date date = new SimpleDateFormat("hhmmss", Locale.ENGLISH).parse(String.valueOf(i));
SimpleDateFormat localDateFormat = new SimpleDateFormat("HH:mm:ss");
String time = localDateFormat.format(date);
答案 2 :(得分:0)
另一种不那么有效的方法,但使用DateFormat:
new SimpleDateFormat("HH:mm:ss").format( new SimpleDateFormat("HHmmss").parse("" + 110631) )