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/