将整数时间转换为没有日期

时间:2017-05-29 22:14:30

标签: java

我有一个整数:

int i = 110631;

...我希望将其转换为“11:06:31”。

我尝试使用SimpleDateFormat:

SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
dateFormat.format(i);

......但它正在返回19:01:50。

3 个答案:

答案 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) )