Kyl*_*yle 0 nsdateformatter ios swift swift-playground
我与此格式返回datetime一些JSON数据工作:"2015-01-17T20:00Z"当我试图把它变成一个NSDate对象,我总是留下为零.我已经通过几个教程和答案在这里对SO阅读,苹果的NSDate/NSDateFormatter /日期格式文档,和ping通了几个IRC频道.
任何人都可以告诉我我做错了什么,可能的解决方法吗?
我在Swift游乐场中失败的代码:
let dateString = "2015-01-17T20:00Z"
let dateStringFormatter = NSDateFormatter()
dateStringFormatter.dateFormat = "yyyy-MM-ddThh:mmZ"
let d = dateStringFormatter.dateFromString(dateString)
println(d)
Run Code Online (Sandbox Code Playgroud)
输出: "Optional(2015-01-17 06:00:00 +0000)"
在同一个Swift游乐场中工作代码:
let dateString = "2015-01-17"
let dateStringFormatter = NSDateFormatter()
dateStringFormatter.dateFormat = "yyyy-MM-dd"
let d = dateStringFormatter.dateFromString(dateString)
println(d)
Run Code Online (Sandbox Code Playgroud)
输出: "nil"
您必须将其格式化为"yyyy-MM-dd \'T \'HH:mmZ".您也可以使用此扩展程序尝试:
extension String {
func toDateFormattedWith(format:String)-> NSDate {
let formatter = NSDateFormatter()
formatter.dateFormat = format
return formatter.dateFromString(self)!
}
}
Run Code Online (Sandbox Code Playgroud)
正如rmaddy所提到的,你的日期是UTC格式,所以我们只会逃避"T",如下所示:
"2015-01-17T20:00Z".toDateFormattedWith("yyyy-MM-dd\'T\'HH:mmZ") // "Jan 17, 2015, 6:00 PM"
Run Code Online (Sandbox Code Playgroud)
如果你需要一些参考格式的日期,你可以使用这个;

| 归档时间: |
|
| 查看次数: |
870 次 |
| 最近记录: |