代码之家  ›  专栏  ›  技术社区  ›  Steve

如何检测安卓设备是否以秒或毫秒为单位存储媒体日期?

  •  2
  • Steve  · 技术社区  · 7 年前

    我有一个小问题,不同的安卓设备以秒或毫秒返回拍摄的图像日期时间戳。我使用 Intent.ACTION_PICK 然后使用内容解析器查询结果。

    MediaStore.Images.ImageColumns.DATE_TAKEN 列在三星Galaxy J7上以秒为单位返回,但在三星Edge 7上以毫秒为单位返回。我如何确定设备使用哪一个?

    2 回复  |  直到 7 年前
        1
  •  2
  •   user7605325 user7605325    7 年前

    当你处理安卓设备拍摄的照片时,我们可以假设2000年之前不会有日期。

    2000-01-01T00:00Z 946684800 秒(或 946684800000 946684800000

    当然,你可以更精确,而不是2000年,你可以使用日期后的 first Android version release ,甚至放弃旧版本,并考虑最后的N个版本(N可以任意选择)。这是Android版本发布日期的时间戳(所有日期基于 this link UTC ):

    2008-09-23T00:00Z: 1222128000000 milliseconds
    2009-02-09T00:00Z: 1234137600000 milliseconds
    2009-04-27T00:00Z: 1240790400000 milliseconds
    2009-09-15T00:00Z: 1252972800000 milliseconds
    2009-10-26T00:00Z: 1256515200000 milliseconds
    2010-05-20T00:00Z: 1274313600000 milliseconds
    2010-12-06T00:00Z: 1291593600000 milliseconds
    2011-02-22T00:00Z: 1298332800000 milliseconds
    2011-10-18T00:00Z: 1318896000000 milliseconds
    2012-07-09T00:00Z: 1341792000000 milliseconds
    2013-10-31T00:00Z: 1383177600000 milliseconds
    2014-11-12T00:00Z: 1415750400000 milliseconds
    2015-10-23T00:00Z: 1445558400000 milliseconds
    2016-08-22T00:00Z: 1471824000000 milliseconds
    
        2
  •  2
  •   Gabe Sechan    7 年前

    嗯,毫秒将是1000倍大。设备上的所有时间戳都应该是最近的——在过去几年中。因此,如果这个数字高于100亿,则为毫秒。如果低于,则为秒。这项测试将适用于下个世纪左右。