无法将字符串转换为日期并将日期转换为字符串Swift 5.2

时间:2020-07-21 21:08:43

标签: swift dateformatter

我试图将字符串转换为日期,然后再转换回字符串,但是我总是遇到致命错误。

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEE, dd MMM yyyy hh:mm:ss Z" //Your date format
dateFormatter.locale = Locale(identifier: "en_US")
//dateFormatter.timeZone = TimeZone(abbreviation: "GMT+0:00") //Current time zone
//according to date format your date string
guard let date = dateFormatter.date(from: "Tue, 21 Jul 2020 20:04:09 +0000") else {
    fatalError()
}
print(date) //Convert String to Date
dateFormatter.dateFormat = "MMM d, yyyy" //Your New Date format as per requirement change it own
let newDate = dateFormatter.string(from: date) //pass Date here
print(newDate) //New formatted Date string
return newDate

我知道有很多解决方案,但是都没有用。

2 个答案:

答案 0 :(得分:2)

尝试使用这种格式(HH而不是hh):

dateFormatter.dateFormat = "EEE, dd MMM yyyy HH:mm:ss Z"
  • hh-“如果只有1位数字,则12小时的小时填充为零”
  • HH-“如果只有1位数字,则24小时填充为零”

答案 1 :(得分:0)

如果您将“ 20”更改为“ 08”,则可以使用,因此 “从2020年7月21日星期二20:04:09 +0000”到“从2020年7月21日星期二08:04:09 +0000”

不确定为什么,我会更多地使用它,但是我猜它不喜欢24小时制。

乔纳斯