I ask a database for the date of an object. I get back a string as such: 2011-08-16T19:03:21.000Z (Here's another one: 2011-08-12T02:13:16.000Z);
Edit: Here is another one that I made August 16th, 2011, at 12:51 PM for testing purposes: 2011-08-16T19:51:24.000Z
I want to convert this date to another format for display purposes. This format may change in the future, so I don't want to do direct string manipulation. The best thing to do is turn it into an NSDate, and then back to the correctly formatted string. However, I cannot, for the life of me, get the darn string into an 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 original string is passed in, and is logged out, but the "The Date:" log always shows null. I'm assuming the format is not correct... but I can't get it to be correct. I've tried using this as a reference as well.
Can I get the aid of a DateFormatter guru? Thank you so much!
One problem (but possibly not the problem) is that that zzzz is not the right specification for 000Z. The end of the RFC 3339 timestamp is not a four-character timezone specification, but fractional seconds plus a literal "Z". So try changing zzzz to SSS'Z'.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With