java中hh:mm:ss格式的时间毫秒
在我的代码中,我生成的时间戳值是长毫秒。我想把它转换成HH:mm:ss(600000到00:10:00),我想用HH:mm:ss格式显示差异
String strstart = "8:30:00";
String strend = "8:40:00";
SimpleDateFormat sdf1 = new SimpleDateFormat("hh:mm:ss");
try {
Date date1 = sdf1.parse(strstart);
Date date2 = sdf1.parse(strend);
long durationInMillis = date2.getTime() - date1.getTime();
System.out.println("durationInMillis---->" + durationInMillis);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我使用下面的代码,输出是这样的0:10:0
,但我希望输出是这样的00:10:00
int seconds = (int) (durationInMillis / 1000) % 60 ;
int minutes = (int) ((durationInMillis / (1000*60)) % 60);
int hours = (int) ((durationInMillis / (1000*60*60)) % 24);
System.out.println(hours+":"+minutes+":"+seconds);
# 1 楼答案
顺便说一下,使用
"HH:mm:ss"
作为h
用于12小时格式(AM/PM)和H
用于24小时格式-一个有趣的错误# 2 楼答案
另一个解决方案:
# 3 楼答案
如果你想
printf
,你可以使用与Joop Eggen提到的相同的方法。如果要将其存储在另一个字符串中,可以按如下所示使用