我使用 currentTimeMillis();
来获取开始时间,然后再次使用它来获取结束时间。然后,我使用从末尾删除开始并获取一个值,该值是两者之间的持续时间。我使用 SimpleDateFormat
使所有这些值美观且可读。唯一的事情是,当我使用像 10 秒(或 300 等)这样的低值而不是完整的长数字(即 1335718053126)时,我似乎会在 01:00:10 或 01:02:12 等处退出我的输出?事实上,如果我只是要求 SimpleDateFormat 针对 0 值输出 hh:mm:ss 值,它会读取 01:00:00。
有人知道这是为什么吗?
如果其他人需要时间格式化的解决方案,请找到这个简洁的小代码。 Source link
public String getNiceTime(long time) {
String format = String.format("%%0%dd", 2);
String seconds = String.format(format, time % 60);
String minutes = String.format(format, (time % 3600) / 60);
String hours = String.format(format, time / 3600);
String outPutTime = hours + ":" + minutes + ":" + seconds;
return outPutTime;
}
最佳答案
mySimpleDateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
说明:您可能生活在 GMT+1 时区,除非您指定不同的时区,否则您的格式化程序将选择您当前的时区,因此它将 0 小时视为 GMT,并且当您处于 GMT+1 时区时,它会输出1小时
关于Android:SimpleDateFormat 不断增加我的时间 1 小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10374130/