簡體   English   中英

紀元迅速將json int(unix時間戳)轉換為可讀日期

[英]epoch convert json int (unix timestamp) into readable date in swift

我正在Swift中基於OpenWeatherMap API創建天氣應用。

我通過Unix時間戳以Int格式接收本地時間,我想將其轉換為人類可讀的格式。

我可以將當​​前(設備)時間轉換為可讀格式,但不能轉換為int值。

當您使用Codable這很容易

  • 將與日期( dtsunrisesunset )相關的所有結構成員聲明為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM