始终以 GMT 格式存储日期然后在显示时进行调整是最佳做法吗?

Is it best practice to always store dates in GMT and then adjust on display?

我正在尝试更好地了解日期。我注意到 IOS 似乎想要在标准 GMT 日期中做所有事情。那就是当你现在问它时,它给你格林威治标准时间。

这增加了复杂性,因为当我为未来设置提醒(并将它们设置在核心数据中)时,我不能只根据用户当前时间设置它们,而是需要将它们转换为 GMT 以便存储,返回实际用于显示,然后如果用户对显示进行了某些操作,则再次转换回 GMT。

在实际本地日期和格林威治标准时间之间来回切换的最佳做法是什么。

感谢您的指导。

NSDate 对象在内部以 GMT 表示自己,所有基于日期的计算都基于 GMT。

将日期作为字符串保存到 Core Data 很愚蠢。不要那样做。

如果没记错的话,您可以直接在 Core Data 中将日期保存为 NSDate 对象。或者,使用 timeIntervalSince1970(创建 "Unix date")并将核心数据中的日期保存为双精度。