我的日期是这样的:2018-04-30T23:22:05 + 1000并希望转换为Date
对象
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss:Z" // z, zz also still nil
let ss = formatter.date(from: "2018-04-30T23:22:05+1000")
print("VAL : \(ss)") // nil always
+1000值的正确格式是什么?
另外我需要添加哪些区域设置才能获得确切的日期?
答案 0 :(得分:1)
将您的dateformat用作zone - 特定的长位置格式。如果不可用,则回退到长期本地化的GMT格式(“0000”)。
//2018-04-30T23:22:05+1000
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
而不是
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss:Z" // z, zz also still nil
完整答案
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
let ss = formatter.date(from: "2018-04-30T23:22:05+1000")
print("VAL : \(ss)") // nil always
答案 1 :(得分:1)
日期为ISO 8601日期(互联网格式),+1000表示+10小时0分钟(+ hhmm)。像这样解析它
let str = "2018-04-30T23:22:05+1000"
let formatter = ISO8601DateFormatter()
formatter.formatOptions = .withInternetDateTime
let date = formatter.date(from: str)