我正在尝试将当前时间和日期转换为时间戳格式。由于服务正在接收此时间戳格式:
2018-26-11T11:38:00Z
我决定使用这样的格式:
yyyy-M-dd'T'H:mm:ss'Z'
但是,当我使用日期格式器对其进行转换时,默认情况下,我会在结尾处得到不需要的AM / PM标签:
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-M-dd'T'H:mm:ss'Z'"
let currentTimeAndDate = Date()
let timeStamp = dateFormatter.string(from: currentTimeAndDate)
// Prints "2018-12-05T12:58:38 PMZ"
默认情况下,如何删除该AM / PM?
答案 0 :(得分:1)
将语言环境设置为固定的en_US_POSIX"
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
或使用专用的ISO8601格式化程序
let dateFormatter = ISO8601DateFormatter()
let currentTimeAndDate = Date()
let timeStamp = dateFormatter.string(from: currentTimeAndDate)
答案 1 :(得分:-1)
yyyy-MM-dd'T'HH:mm:ssX
作为格式。timeZone
设置为TimeZone(secondsFromGMT: 0)
。Locale(identifier: "en_US_POSIX")
更新的代码:
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssX"
dateFormatter.timeZone = TimeZone(secondsFromGMT: 0)
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
let currentTimeAndDate = Date()
let timeStamp = dateFormatter.string(from: currentTimeAndDate)
或者避免所有这些,并使用ISO8601DateFormatter
。