首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在iOS上获取ISO8601日期?

如何在iOS上获取ISO8601日期?
EN

Stack Overflow用户
提问于 2013-04-28 00:45:39
回答 9查看 73.1K关注 0票数 119

在PHP语言中通过date('c')获取ISO8601日期字符串(例如,2004-02-12T15:19:21+00:00)非常简单,但是如何在Objective-C (iPhone)中获取它呢?有没有类似的捷径呢?

这是我找到的很长的方法:

NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ssZ";

NSDate *now = [NSDate date];
NSString *formattedDateString = [dateFormatter stringFromDate:now];
NSLog(@"ISO-8601 date: %@", formattedDateString);

// Output: ISO-8601 date: 2013-04-27T13:27:50-0700

对于如此核心的东西,这似乎有太多的繁琐之处。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2013-04-28 01:20:42

使用NSDateFormatter

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];   
NSLocale *enUSPOSIXLocale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
[dateFormatter setLocale:enUSPOSIXLocale];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"];
[dateFormatter setCalendar:[NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian]];

NSDate *now = [NSDate date];
NSString *iso8601String = [dateFormatter stringFromDate:now];

在Swift中:

let dateFormatter = DateFormatter()
let enUSPosixLocale = Locale(identifier: "en_US_POSIX")
dateFormatter.locale = enUSPosixLocale
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
dateFormatter.calendar = Calendar(identifier: .gregorian)

let iso8601String = dateFormatter.string(from: Date())
票数 220
EN

Stack Overflow用户

发布于 2016-08-26 19:39:37

iOS 10引入了一个新的NSISO8601DateFormatter类来处理这个问题。如果你使用的是Swift 3,你的代码应该是这样的:

let formatter = ISO8601DateFormatter()
let date = formatter.date(from: "2016-08-26T12:39:00Z")
let string = formatter.string(from: Date())
票数 68
EN

Stack Overflow用户

发布于 2013-09-04 16:06:59

作为对maddy答案的补充,ISO 8601的时区格式应为"ZZZZZ“(5乘以Z),而不是单个"Z”(用于RFC 822格式)。至少在iOS 6上是这样。

(参见http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns)

票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16254575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档