我想将2013-03-24T02:15:23-08:00字符串转换为NSDate对象。我试过格式化字符串yyyy-MM-ddTHH:mm:ss-Z,但是NSDate对象是零。 我知道这是一个微不足道的问题,但现在我真的陷入其中。
以下是我的转化代码
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"yyyy-MM-ddTHH:mm:ss-Z"];
NSDate* date = [dateFormatter dateFromString:image.dateTaken];
请帮助。
答案 0 :(得分:4)
日期格式字符串中有两个错误:
T
字符必须引用为'T'
。-08:00
是ZZZZZ
。
请注意,减号是时区本身的一部分,而不是格式的一部分。这应该有效:
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"];
答案 1 :(得分:1)
NSString *dateString = @"2013-03-24T02:15:23-08:00";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
// this is imporant - we set our input date format to match our input string
// if format doesn't match you'll get nil from your string, so be careful
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:dateString];
答案 2 :(得分:1)
2013-03-24T02:15:23-08:00在此字符串中Z不是-08:00的正确格式...
Z的正确格式如下
Z:GMT-08:00
或
Z:-0800
请查看以下链接以供参考
http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns
如果您将日期字符串更改为-0800或GMT-08:00,则可以获得正确的日期...