NSDate 与核心数据格式化为本地化

NSDate with Core Data formatted for localization

我需要用 Core Data 保存日期,当用户选择应用程序的某个部分时,日期会以本地化格式显示(例如 中文或法文)。

如果我这样做 [NSDate date] 如果我没记错的话,会给我格林威治标准时间的日期。

如果我想保存到 Core Data,我要这样设置吗?

[objectToSave setValue:[NSDate date] forKey:@"date"];

或者我必须用语言环境来设置它吗?我该怎么做?

或者我只是像上面那样设置日期,然后在从 Core Data 检索后重新制作我的模型对象时格式化语言环境?

这就是 NSDate 的全部目的。它为您提供了一个通用的日期值,然后可以在您想要的任何语言环境中进行解释。

真的,除非有非常非常好的理由,否则您应该始终以这种方式存储日期。

您只需要在呈现数据时对其进行本地化,通常是在屏幕上。您可以通过获取用户的当前本地地址来做到这一点。

这样,如果我们都使用相同的数据,我可以看到希伯来语,你可以看到法语,我们的时区可以是耶路撒冷和巴黎。

我们会看到完全相同的时间,但使用的是我们自己的区域设置格式和本地时区,我们自己没有对数据进行任何转换。