NSDateFormatter返回nil

Kor*_*mie 1 objective-c nsdateformatter

我正在尝试解析以格式传递的日期:

"2014-03-26T05:07:42.14286Z"
Run Code Online (Sandbox Code Playgroud)

我的NSDateFormatter代码看起来像这样

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'SS'Z'"];
self.createdAt = [dateFormatter dateFromString:@""2014-03-26T05:07:42.14286Z""];
Run Code Online (Sandbox Code Playgroud)

但它只是回归nil.我尝试过多种变化,有或没有刻度,但我似乎缺少一些东西.我使用NSDateFormatter不正确,完全误解了滴答声的用法吗?

vda*_*bry 6

如果给定的字符串与预期的格式不对应,格式化程序返回nil.您的格式字符串几乎是正确的,您只需要:

  • 撇号只应用于文字
  • 应将毫秒指定为"SSS"并匹配分隔(使用ss.SSS)

正确的格式字符串是:

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];
NSDate *d = [df dateFromString:@"2014-03-26T05:07:42.14286Z"];
Run Code Online (Sandbox Code Playgroud)