向数据库请求对象的日期。我得到这样一个字符串:2011-08-16T19:03:21.000Z
(这里是另一个:2011-08-12T02:13:16.000Z
);
2011-08-16T19:51:24.000Z
我想将此日期转换为另一种格式以用于显示。这种格式将来可能会改变,所以我不想做直接的字符串操作。最好的做法是将它转换成NSDate,然后返回到正确格式的字符串。然而,无论如何,我都不能把这个该死的字符串变成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;
}
原始字符串被传入,并被注销,但"The Date:"日志总是显示为空。我猜格式不对……但我不能让它正确。我也试过用这个作为参考。
我能得到DateFormatter大师的帮助吗?非常感谢!
一个问题(但可能不是问题)是zzzz
不是000Z
的正确规范。RFC 3339时间戳的末尾不是四个字符的时区规范,而是小数秒加上文字&;z &;。所以试着把zzzz
改成SSS'Z'
。