Nea*_*int 17 json nsdateformatter swift
我向服务器发出一个http get请求并返回一个带有日期字符串的json对象:
{
name = "Place1";
temperature = 79;
humidity = 68;
reported_at = "2013-07-21T19:32:00Z";
}
Run Code Online (Sandbox Code Playgroud)
我想格式化reported_at键,以便向用户显示可读的日期和时间.
这是我正在尝试的快速代码,它不断返回nil,因为它无法格式化日期.
var str = "2013-07-21T19:32:00Z"
var dateFor: NSDateFormatter = NSDateFormatter()
dateFor.dateFormat = "yyyy-MM-dd'T'HH:mm:ss:SSS"
var yourDate: NSDate? = dateFor.dateFromString(str)
println(yourDate)
Run Code Online (Sandbox Code Playgroud)
如何正确格式化Swift的日期和时间?我想向用户显示日期和时间,以便他们知道何时进行阅读.
Zel*_* B. 26
使用以下字符串格式将服务器字符串转换为Date
dateFor.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
Run Code Online (Sandbox Code Playgroud)
vad*_*ian 16
如今(2017年9月)在Swift 4中有更智能的方法来解码ISO8601:
ISO8601DateFormatter
let str = "2013-07-21T19:32:00Z"
let formatter = ISO8601DateFormatter()
let yourDate = formatter.date(from: str)
Run Code Online (Sandbox Code Playgroud)JSONDecoder
struct Place : Decodable {
let name : String
let temperature : Int
let humidity : Int
let reportedAt : Date
}
let json = """
{"name" : "Place1", "temperature" : 79, "humidity" : 68, "reported_at" : "2013-07-21T19:32:00Z"}
"""
let data = Data(json.utf8)
let decoder = JSONDecoder()
decoder.dateDecodingStrategy = .iso8601
decoder.keyDecodingStrategy = .convertFromSnakeCase
let place = try! decoder.decode(Place.self, from: data)
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
21413 次 |
| 最近记录: |