java - SimpleDateFormat 有时会出现错误的小时格式

标签 java simpledateformat duration milliseconds gmt

我想将时间戳转换为 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/

相关文章:

Java 获取简写形式的星期几

android - 如何定义按钮显示以动画方式一一出现?

android - 获取原始文件夹中歌曲的歌曲时长并将其转换为String数组?

java - 正确配置 dispatcher-servlet、applicationContext 和 web.xml

java - 没有打印语句,循环看不到其他线程更改的值

java - quartz xml中耐久性的用途是什么

java - 转换 GMT 日期时间字符串

java - 我们能得到给定日期对象的模式吗

python - 解析 xs :duration datatype into a Python datetime. timedelta 对象?

java - 如何在 Eclipse 运行时使用 GAE 模块的共享库?