【发布时间】:2016-05-16 15:57:10
【问题描述】:
我正在使用调试器跟踪代码,但我不明白为什么它返回 nil 而不是日期。
将其传递给它:2016-02-12T19:47:29+0000
-(NSString*)formatDate:(NSString*)date {
NSString *dateString = date;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-MM-dd'T'hh:mm:ssZ";
dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:dateString];
return [dateFormatter stringFromDate:dateFromString];
}
【问题讨论】:
-
试试
HH而不是hh -
如@luk2302所说,使用24小时格式创建日期,然后再次设置格式以创建12小时格式的字符串。
-
为什么要尝试使用相同的格式将字符串转换为日期,然后再转换回相同的字符串?为什么要为转换烦恼?
-
这里是题外话,但有一些编码风格建议: 1) 如果参数 date 是字符串,请不要命名它。 2) 根本不需要 dateString 变量。只需使用参数。 3) 不要分配/初始化 dateFromString。你只是通过在下一行覆盖它来破坏它。
标签: objective-c string nsdate nsdateformatter