ios - 如何获取 PHAsset 的原始(EXIF?)创建日期/时间?

标签 ios phasset photosframework

PHAsset 有一个 creationDate 属性,以 UTC 格式给出 Assets 的创建日期。

如果我在 UTC-6 晚上 10:52 拍摄照片,则 creationDate 属性为凌晨 03:52。

我怎么知道拍摄照片的“真实”时间? creationDate 属性没有提供时区信息,因此我无法将其调整回晚上 10:52 - 我不知道调整它时要调整到哪个时区...

我知道我可以使用 PHImageManager requestImageDataForAsset 获取 EXIF 创建日期(或至少尝试获取)并使用那里返回的数据获取 EXIF 创建日期,实际上是晚上 10:52,但是当照片在 iCloud 中时,这会导致性能非常低(我需要用户库中所有 Assets 的创建日期值)。此外,我不知道如何获取视频的 EXIF 创建日期。

我也知道有一些方法可以从 CLLocation 获取时区,我可以用它来调整 creationDate - 但这些方法要么是速率限制和/或不准确

是否有另一种更简单的方法来获取此原始创建日期值?

回顾一下:

  • 一张照片拍摄于晚上 10:52(UTC-6)
  • PHAsset 创建日期为 UTC 时间凌晨 03:52
  • 我想知道如何获得 10:52 PM UTC-6 日期/时间。

最佳答案

您可以尝试使用 PHContentEditingInput。 iCloud 图片也可能会很慢,但值得尝试,因为我认为没有其他方法可以做到这一点:(

这种方法不需要 ImageIO 导入并且需要更少的代码,所以它可能比 PHImageManager requestImageDataForAsset 好一些

您可以使用这个 PHAsset 类别来快速尝试: https://github.com/zakkhoyt/PHAsset-Utility

关于ios - 如何获取 PHAsset 的原始(EXIF?)创建日期/时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44635031/

相关文章:

ios - 在遍历数组时保存到 CoreData

ios - Cocoapod - 创建一个依赖于另一个 cocoapod 的新 cocoapod 失败

ios - 在 swift 中使用 PHImageManager (requestAVAssetForVideo)

ios - 可以从库的PHAsset中获取图像

ios - 如何判断Apple Watch型号?

ios - 如何创建一个可以自动调整高度的表格

ios - 获取 PHAsset 的本地文件路径

Swift 3 将数据转换为 AVAsset 或 PHAsset

ios - 照片错误 : Unable to obtain assetsd XPC proxy 是什么意思

ios - 使用照片框架的视频选择器