在我的sqlite数据库中,我有一个NSDate字段,我使用此代码创建了一个具有唯一名称的图像文件,并根据该日期加载图像。
NSDateFormatter *digitsOnlyDateFormatter = [[NSDateFormatter alloc] init];
[digitsOnlyDateFormatter setDateFormat:@"yyyyMMddHHmmss"];
NSString *imageDateString = [digitsOnlyDateFormatter stringFromDate:[self imageDate]];
如果我从iphone设置中更改时区,并在数据库中添加新记录,则无法加载使用其他时区保存的其他图像。
我认为转换有问题。有人能帮我吗?
NSDateFormatter
的部分格式可以被用户设置覆盖:特别是AM/PM与24小时时间的选择。
您可以通过设置格式化程序的区域设置来解决此问题。(注意:只有在这种情况下,您才应该这样做,以创建需要在不同地区保持一致且不会向用户显示的字符串)。
NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[digitsOnlyFormatter setLocale:enUSPOSIXLocale];
附言:如果你想让字符串也相对于同一时区,你也应该设置格式化程序的时区:
[digitsOnlyFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];