我向数据库询问对象的日期。我回复了一个字符串:2011-08-16T19:03:21.000Z
(这是另一个字符串:2011-08-12T02:13:16.000Z
);
编辑:这是我在2011年8月16日下午12:51进行测试的另一个问题:2011-08-16T19:51:24.000Z
我想将此日期转换为其他格式以供显示。这种格式将来可能会改变,所以我不想直接进行字符串操作。最好的办法是将其转换为NSDate,然后再转换为格式正确的字符串。但是,对于我的生活,我不能把这个darn字符串变成NSDate。
- (NSString *)makeDateStringReadable:(NSString *)dateString {
NSLog(@"The String: %@", dateString);
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-ddTHH:mm:ss.zzzz"];
NSDate *theDate = [formatter dateFromString:dateString];
NSLog(@"The Date: %@", theDate);
[formatter setDateFormat:@"yyyy-MM-dd"];
NSString *finalString = [formatter stringFromDate:theDate];
[formatter release];
return finalString;
}
传入原始字符串并注销,但“日期:”日志始终显示为null。我假设格式不正确......但我无法让它变得正确。我也尝试使用this作为参考。
我能获得DateFormatter专家的帮助吗?非常感谢你!
答案 0 :(得分:13)
一个问题(但可能不是 问题)是zzzz
不是000Z
的正确规范。 RFC 3339时间戳的结尾不是四字符时区规范,而是小数秒加上文字" Z"。因此,请尝试将zzzz
更改为SSS'Z'
。