كيف يمكنني تحليل المنطقة الزمنية ISO 8601/RFC 3339 مع NSDateFormatter؟

StackOverflow https://stackoverflow.com/questions/3643147

سؤال

لدي سلسلة تاريخ مثل هذا (ISO 8601 تمثيل تاريخ ووقت مشترك أو RFC 3339):

2010-09-04T19: 13: 00z

ولكن كيف يمكنني تكوين NSDateFormatter لقبول تنسيق المنطقة الزمنية هذا؟

هل كانت مفيدة؟

المحلول

الق نظرة هنا حول ما توصي به Apple:

// Convert the RFC 3339 date time string to an NSDate.

NSDateFormatter *rfc3339DateFormatter = [[[NSDateFormatter alloc] init] autorelease];

NSLocale *enUSPOSIXLocale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];

[rfc3339DateFormatter setLocale:enUSPOSIXLocale];
[rfc3339DateFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"];
[rfc3339DateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

NSDate *date = [rfc3339DateFormatter dateFromString:rfc3339DateTimeString];

نصائح أخرى

[NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehavior10_4];
NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
NSDate *date = [formatter dateFromString:'2010-09-04T19:13:00Z'];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top