ios - ISO 8601 日期的正确日期格式

标签 ios nsdateformatter iso8601

我为 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);

关于ios - ISO 8601 日期的正确日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51584493/

相关文章:

ios - 搜索栏内按钮的功能名称

objective-c - NSDate 日期方法返回错误结果

jquery - 使用 ASP.NET MVC 的 FullCalendar 中的 DateTimeOffset

objective-c - iOS - 如何比较两个 ISO 8601 格式的时间?

java - ISO 8601 中的时间戳 - 最后 6 位数字 yyyy-MM-dd'T'HH :mm:ss. ?

iphone - 在iphone中读取文本文件

ios - 删除所有 iAds 应用程序?

ios - UIImageView 没有隐藏?

iphone - 如何确定语言环境的日期格式是月/日还是日/月?

ios - NSDateFormetter iOS 问题