从字符串'2011-08-16T19:03:21.000Z'获取日期



向数据库请求对象的日期。我得到这样一个字符串:2011-08-16T19:03:21.000Z(这里是另一个:2011-08-12T02:13:16.000Z);

编辑:这是我在2011年8月16日下午12:51为测试目的制作的另一个: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'

最新更新