【发布时间】:2016-06-18 11:50:34
【问题描述】:
是否有一种(优雅或首选的)方法可以将 DateComponents 对象转换为字符串并返回,以便
DateComponents -> String -> DateComponents
总是可能的并且结果对象等于原始对象? (不相同)(如CustomStringRepresentable)
对于NSDate / Date 有一个NSDateFormatter / DateFormatter 能够做到这一点,来回转换。
对于DateComponents,有一个DateComponentsFormatter,但在我看来不支持从String 到DateComponents 的方向。
这个问题的动机
HealthKit 用于将生日存储为 NSDate,直到 iOS 9.x。
从 iOS 10 开始,HealthKit 使用DateComponents 作为生日模型。 (并且在生日时已弃用 NSDate)
我试图在我自己的以 HealthKit 为中心的应用程序的数据模型中反映 HealthKits 模型的变化。最直接的方法是在我的模型中使用 DateComponents,就像 HealthKit 一样。
由于我需要将模型保存到文件中并再次加载,因此这个问题的答案将使我能够做到这一点。
明显的后备是将DateComponents 转换为Date 并保存。但是,Apple 在生日时弃用 Date 肯定是有充分理由的。
【问题讨论】:
-
能否请您详细说明组件和字符串之间的关系以及字符串格式。
-
我不太关心字符串格式。任何有效的东西。如果开发人员出于调试原因可以阅读它会很好。
标签: swift date healthkit swift3