“EEE,dd MMM yyyy hh:mm:ss zzz”字符串转换为日期
问题描述:
Dears,帮助将字符串转换为“Mon,10 Apr 2017,10:00:00 PDT”至日期 我的代码如下,不幸的是它导致错误:“EEE,dd MMM yyyy hh:mm:ss zzz”字符串转换为日期
extension String {
func getDate() -> Date {
let formatter = DateFormatter()
formatter.dateFormat = "EEE, dd MMM yyyy hh:mm:ss zzz"
return formatter.date(from: self)! // Returns "Mon, 10 Apr 2017, 10:00:00 PDT"
}
}
答
有两个问题。你需要在一年之后增加一个逗号和使用HH(24小时),而不是HH(12小时),在您的日期格式:
extension Formatter {
static let date = DateFormatter()
}
extension String {
var getDate: Date? {
Formatter.date.locale = Locale(identifier: "en_US_POSIX")
Formatter.date.dateFormat = "EEE, dd MMM yyyy, HH:mm:ss zzz"
return Formatter.date.date(from: self)
}
}
let dateString = "Mon, 10 Apr 2017, 10:00:00 PDT"
if let date = dateString.getDate {
Formatter.date.timeZone = TimeZone(abbreviation: "PDT")
Formatter.date.string(from: date) // Mon, 10 Apr 2017, 10:00:00 PDT
}
谢谢!有用:) – LEONID