格式化此字符串的合适方法是什么:
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"]]);
如何解决此问题以输出上述字符串?
答案 0 :(得分:1)
Z
字面意思是RFC 822标准,它不允许您在小时和分钟之间拥有:
:
zone = "UT" / "GMT" ; Universal Time
; North American : UT
/ "EST" / "EDT" ; Eastern: - 5/ - 4
/ "CST" / "CDT" ; Central: - 6/ - 5
/ "MST" / "MDT" ; Mountain: - 7/ - 6
/ "PST" / "PDT" ; Pacific: - 8/ - 7
/ 1ALPHA ; Military: Z = UT;
; A:-1; (J not used)
; M:-12; N:+1; Y:+12
/ ( ("+" / "-") 4DIGIT ) ; Local differential
; hours+min. (HHMM)
答案 1 :(得分:0)
感谢您的帮助。好的,我稍微更改了格式化程序。这是代码。
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
[dateFormatter setLocale:[NSLocale currentLocale]];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HHmmssZ"];
s.due_At = [dateFormatter dateFromString:[[assignmentData objectForKey:@"due_at"] stringByReplacingOccurrencesOfString:@":" withString:@""]];
NSLog(@"%@",[dateFormatter stringFromDate:s.due_At]);
Nslog不再为null,尽管它仍包含中间的T. 这是现在的日志消息。
2012-07-29T015900-0400