Uw format string is dichtbij, maar u wilt de milliseconden specificeren met SSS
, ook:
[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSX"];
Ook de Z
in je datumstring staat voor "Zulu" (d.w.z. GMT/UTC), dus je dateFormat
moet Z
. gebruiken of X
zonder aanhalingstekens, zodat de tijdzone van de tekenreeks correct wordt geparseerd. Zorg er ook voor dat u uw tijdzone dienovereenkomstig instelt als u strings van datums bouwt. U wilt ook uw landinstelling instellen:
NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.locale = enUSPOSIXLocale;
formatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSX";
formatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
Zie Technische Q&A QA1480 voor meer informatie.
U kunt ook de nieuwere NSISO8601DateFormatter
. gebruiken , waarmee je uit sommige van dat onkruid komt:
NSISO8601DateFormatter *formatter = [[NSISO8601DateFormatter alloc] init];
formatter.formatOptions = NSISO8601DateFormatWithFullDate | NSISO8601DateFormatWithFullTime | NSISO8601DateFormatWithFractionalSeconds;