【发布时间】:2012-08-02 20:17:10
【问题描述】:
格式化此字符串的适当方法是什么:
2012-07-28T23:59:00-06:00
这是我正在使用的代码,日期格式化程序当前将 s.due_At 的值设置为 nil,并且两个 NSLog 都显示为 null。我从字典中得到了上面的字符串,确定我已经 NSLogged 了。
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[NSLocale currentLocale]];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
s.due_At = [dateFormatter dateFromString:[assignmentData objectForKey:@"due_at"]];
NSLog(@"%@",[dateFormatter stringFromDate:s.due_At]);
NSLog(@"%@",[dateFormatter dateFromString:[assignmentData objectForKey:@"due_at"]]);
如何解决这个问题以输出上述字符串?
【问题讨论】:
-
您确定
[assignmentData objectForKey:@"due_at"]没有返回零吗? -
您的设备时间设置是多少? 24 小时还是上午/下午?我有同样的问题,它与时间格式有关,不幸的是我无法修复它。您是否尝试使用 setLocale 注释掉该行?
-
是的,我绝对确定 [assignmentData objectForKey:@"due_at"] 正在返回一个字符串。我可以在本地创建一个字符串对象并 nslog 值。此外,如果我将本地创建的字符串发送到 NSLog(@"%@",[dateFormatter dateFromString:localString]) 我仍然得到空值。感谢您的帮助。
-
是的,我确实提交了设置的语言环境,但无济于事。
标签: ios cocoa nsdate nsdateformatter