ISO 8601 日期的正确日期格式
Right dateFormat for ISO 8601 date
我为 NSDateFormatter
堆叠了 2017-12-13T10:30:00.000-06:00
的日期格式。我尝试了不同的格式,但仍然从 [formatter dateFromString:exampleDate]
得到 nil
。我在 nsdateformatter 上选择的最可能的格式是 @"yyyy-MM-dd'T'HH:mm:ss.SSSZ"
,但 TimeZone 没有正确应用,我从 NSDateFormatter
得到了 nil
。
我也尝试使用:
NSISO8601DateFormatter *dateFormatter = [[NSISO8601DateFormatter alloc] init];
[dateFormatter dateFromString:@"2017-12-13T10:30:00.000-06:00"];
也得到了nil
.
您可以使用 NSISO8601DateFormatter
和选项 .withFractionalSeconds
(iOS 11.0+) 和 .withInternetDateTime
NSISO8601DateFormatter *dateFormatter = [[NSISO8601DateFormatter alloc] init];
dateFormatter.formatOptions = NSISO8601DateFormatWithFractionalSeconds | NSISO8601DateFormatWithInternetDateTime;
NSDate *date = [dateFormatter dateFromString:@"2017-12-13T10:30:00.000-06:00"];
NSLog(@"%@", date);
对于标准 NSDateFormatter
日期格式是正确的
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSZ";
NSDate *date = [dateFormatter dateFromString:@"2017-12-13T10:30:00.000-06:00"];
NSLog(@"%@", date);
我为 NSDateFormatter
堆叠了 2017-12-13T10:30:00.000-06:00
的日期格式。我尝试了不同的格式,但仍然从 [formatter dateFromString:exampleDate]
得到 nil
。我在 nsdateformatter 上选择的最可能的格式是 @"yyyy-MM-dd'T'HH:mm:ss.SSSZ"
,但 TimeZone 没有正确应用,我从 NSDateFormatter
得到了 nil
。
我也尝试使用:
NSISO8601DateFormatter *dateFormatter = [[NSISO8601DateFormatter alloc] init];
[dateFormatter dateFromString:@"2017-12-13T10:30:00.000-06:00"];
也得到了nil
.
您可以使用 NSISO8601DateFormatter
和选项 .withFractionalSeconds
(iOS 11.0+) 和 .withInternetDateTime
NSISO8601DateFormatter *dateFormatter = [[NSISO8601DateFormatter alloc] init];
dateFormatter.formatOptions = NSISO8601DateFormatWithFractionalSeconds | NSISO8601DateFormatWithInternetDateTime;
NSDate *date = [dateFormatter dateFromString:@"2017-12-13T10:30:00.000-06:00"];
NSLog(@"%@", date);
对于标准 NSDateFormatter
日期格式是正确的
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSZ";
NSDate *date = [dateFormatter dateFromString:@"2017-12-13T10:30:00.000-06:00"];
NSLog(@"%@", date);