[英]epoch convert json int (unix timestamp) into readable date in swift
我正在Swift中基於OpenWeatherMap API創建天氣應用。
我通過Unix時間戳以Int格式接收本地時間,我想將其轉換為人類可讀的格式。
我可以將當前(設備)時間轉換為可讀格式,但不能轉換為int值。
當您使用Codable
這很容易
將與日期( dt
, sunrise
, sunset
)相關的所有結構成員聲明為Date
let dt : Date
將適當的日期解碼策略添加到解碼器
let decoder = JSONDecoder() decoder.dateDecodingStrategy = .secondsSince1970
例如,使用DateFormatter
獲取人類可讀的字符串
let formatter = DateFormatter() formatter.setLocalizedDateFormatFromTemplate("yyyyMMMddHHmmss") let dateString = formatter.string(from: dt)
Unix時間戳通常是自1970年1月1日午夜以來的秒數或毫秒數。
將Cocoa Date
轉換為Unix毫秒非常容易:
let unixMilliseconds: Int = Int(Date().timeIntervalSince1970 * 1000)
print(unixMilliseconds)
或者,如果您有Unix時間戳記:
let date = Date.init(timeIntervalSince1970: Double(unixMilliseconds/1000))
print(DateFormatter.localizedString(from: date, dateStyle: .medium, timeStyle: .medium))
(如果要處理秒數,則可以在上面的代碼中使用*1000
和/1000
或者使用vadian出色答案中所述的JSON解碼器。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.