我想将时间戳转换为 XXhours:YY 分钟字符串。我的方法有时会正确工作,除非它获得了更大的值(value)。例如,
193500000 -> 05小时:45分钟(错误,正确的是53小时:45分钟)
60300000 -> 16小时:45分钟(正确)
63900000 -> 17小时:45分钟(正确)
108000000-> 06小时:00分钟 (错误,正确的是30小时:00分钟)
117000000 -> 08小时:30分钟(错误,正确的是32小时:30分钟)
SimpleDateFormat dateFormat = new SimpleDateFormat("HH'hours' mm'minutes'");
dateFormat.setTimeZone( TimeZone.getTimeZone( "GMT"));
String string = dateFormat.format(totalTime);
最佳答案
再仔细阅读一下:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
HH 是一天中的小时数,永远不会超过 24 :-)
你想要的可能是这样的:
int msecPerHour = 3600*1000;
int hours = totalTime/msecPerHour;
int msecPerMinute = 60*1000;
int minutes = totalTime/msecPerMinute - hours*60;
String str = "" + hours + " hours " + minutes + " minutes";
关于java - SimpleDateFormat 有时会出现错误的小时格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48260087/