【问题标题】:ZipEntry.getTime() unpredictable resultsZipEntry.getTime() 不可预知的结果
【发布时间】:2014-12-28 10:13:20
【问题描述】:

我正在 Android 上试验 ZipEntry.getTime()。但是,对于相同的 zip&file,我在不同的设备上看到了不同的结果: 1419755996000, 1419752396000, 1419730796000, 1419770396000, 1419737996000, 1419745196000, 1419759596000, ...

与我的设备以小时为单位的差异如下: +2小时, +1小时, -5小时, +6小时, -3小时, -1小时, ...

这些数字是通过分析和日志记录从世界各地的真实设备中获得的。 由于我直接使用 getTime() 的长结果,因此我不认为时区很重要。

如何解释这些差异以及如何在所有设备上获得统一的结果?

【问题讨论】:

    标签: java android timezone


    【解决方案1】:

    在 zip 文件中,每个条目的日期和时间都存储为年、月、日、小时、分钟和秒,编码为 long 值。没有指定时区。在 getTime() 方法的过程中将其转换为 Java Date(表示时间的瞬间)时,它会根据系统时区进行转换。

    【讨论】:

    • 我能以某种方式将结果标准化为 UTC 时区,这样所有的都一样吗?
    • 您可能想使用 TimeZone.getDefault().getOffset(???) 之类的东西来计算调整多少,但在夏令时开始和结束的时候会遇到麻烦。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多