iOS swift 3 : Convert "yyyy-MM-dd' T'HH:mm:ssZ"format string to date object

标签 ios swift nsdate

你好,我有一本字典

self.publishedAt = dictionary["publishedAt"] as? NSString

我在其中获取日期“2017-01-27T18:36:36Z”。我想把它转换成 可读格式:dd-MM-yyyy hh:mm:ss。我尝试通过

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy hh:mm:ss"
let date = dateFormatter.date(from: (self.publishedAt as? String)!)
print("EXACT_DATE : \(date)") 

但得到零。 :(

以简单格式获取日期的正确方法是什么?

最佳答案

您需要一种输入格式将 ISO8601 字符串转换为日期,以及一种输出格式将日期转换回字符串:

let string = "2017-01-27T18:36:36Z"

let dateFormatter = DateFormatter()
let tempLocale = dateFormatter.locale // save locale temporarily
dateFormatter.locale = Locale(identifier: "en_US_POSIX") // set locale to reliable US_POSIX
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
let date = dateFormatter.date(from: string)!
dateFormatter.dateFormat = "dd-MM-yyyy HH:mm:ss"
dateFormatter.locale = tempLocale // reset the locale
let dateString = dateFormatter.string(from: date)
print("EXACT_DATE : \(dateString)")

关于iOS swift 3 : Convert "yyyy-MM-dd' T'HH:mm:ssZ"format string to date object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41907419/

相关文章:

ios - 在 OSX 上使用透明的 mitmproxy 测试 iOS 应用程序的 SSL/TLS 证书验证

ipad - MPMoviePlayerViewController 隐藏状态栏

ios - 防止垂直 UIStackView 拉伸(stretch) subview ?

swift - 总结核心数据中的 bool 值与 nsnumbers

ios - 在 swift 中使用 NSDateFormatter 时我得到 nil

ios - 在 Swift 2 中使用 NSDateComponents 计算下个月开始的奇怪日期结果

ios - Xcode 5.1 中的配置文件列表

ios - Sprite Kit 创建倒数计时器问题

ios - 使用 salesforce-ios-sdk 更新现有应用程序后找不到头文件

objective-c - NSDateComponents 工作日不显示正确的工作日?