Android:SimpleDateFormat 不断增加我的时间 1 小时

标签 android time simpledateformat

我使用 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/

相关文章:

java - 如何在jspinner中设置预定义时间

java - 在 TabLayout + ViewPager2 中选择第三页作为默认值

ruby - 两个时间实例之间的天数

c - 当我第二次运行该程序时,它没有给我正确的执行时间

java - "Unparseable date"使用带有 API 代码示例的 SimpleDateFormatter

java - 将日期格式化为字符串

Java Android mysql 连接不适用于 4.0

安卓市场API

java - 如何将 SQLiteOpenHelper 作为单个原子事务进行多次调用?

javascript - 将当前时间添加 6 小时并显示到页面