我的日期如下:2011-04-29T14:54:00-04:00
当它运行以下代码将其转换为日期时,由于某种原因,日期为空:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
NSDate *date = [dateFormatter dateFromString:localDate];
[dateFormatter release];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-mm-dd"];
NSLog(@"%@", [formatter stringFromDate:date]);
任何帮助将不胜感激
解决:
好的,我明白了。出于某种原因,这种方法不起作用。
NSDate *date = [dateFormatter dateFromString:localDate];
这相反。希望它可以帮助别人!
NSError *error = nil;
NSDate *date = nil;
[dateFormatter getObjectValue:&date forString:localDate range:nil error:&error];
答案 0 :(得分:3)
好的,我明白了。出于某种原因,这种方法不起作用。
NSDate *date = [dateFormatter dateFromString:localDate];
这相反。希望它可以帮助别人!
NSError *error = nil;
NSDate *date = nil;
[dateFormatter getObjectValue:&date forString:localDate range:nil error:&error];
答案 1 :(得分:2)
尝试设置时区:
dateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
你可能需要在你的格式字符串中引用-s,:和'Z(也许不是-s和:'s,但我认为至少是Z):
[dateFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"];
除了那些,这就是我的日期格式化程序的配置方式,它可以正常工作。
答案 2 :(得分:0)
NSDateFormatter似乎只实现了UTS #35中描述的带有'Z'的时区的规范格式。使用no leniency in parsing。
尝试更改localDate字符串中时区的格式。