从字符串创建日期



我现在对核心数据很满意(只做了 6 个月的 iOS 开发人员),但我还没有遇到在核心数据中指定日期的问题。

所以情况是这样的。我正在以 JSON 格式从 Web 服务中提取数据。我拥有的元素之一是日期元素,我不知道将其正确存储在核心数据中的语法。

如果不清楚,这里有一个例子:
存储字符串的语法:

newDate.eventyType = NSLocalizedString([diction objectForKey:@"eventyType"], nil);

用于存储数字的语法:

newDate.id = [NSNumber numberWithInt:[NSLocalizedString([diction objectForKey:@"id"], nil) intValue]];

所以我需要知道存储日期的语法。

尝试如下:-

如果您要将日期从 json 格式提取并存储到变量NSString请尝试以下方法转换为NSDate:-

NSString *strDate2=@"19-01-2014";
NSDateFormatter *format=[[NSDateFormatter alloc]init];
[format setDateFormat:@"dd-MM-yyyy"];
NSDate *dt1=[format dateFromString:strDate1];

正如我之前已经回答的那样,要从NSString创建一个NSDate对象,请使用NSDateFormatter。关于日期格式化程序,要了解的重要一点是它使用用户的区域设置(包括日历!)和时区。但是,您希望收到的日期可能位于一个固定的区域设置和一个时区中。这可能会导致日期格式化程序无法解析日期字符串。

解决方案是将区域设置和时区显式设置为日期格式化程序:

NSDateFormatter *rfc3339DateFormatter = [[[NSDateFormatter alloc] init];
NSLocale *enUSPOSIXLocale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX”];
rfc3339DateFormatter.locale = enUSPOSIXLocale;
rfc3339DateFormatter.dateFormat = @"yyyy'-'MM'-'dd”;
rfc3339DateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];

有关更详细的说明,请参阅技术问答QA1480。

最新更新