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

Unable to convert string to date and date to string Swift 5.2

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

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

我知道有很多解决方案,但其中 none 个有效。

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

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

如果您从“20”更改为“08”那么它就可以工作,所以从 “2020 年 7 月 21 日星期二 20:04:09 +0000”到“2020 年 7 月 21 日星期二 08:04:09 +0000”

不知道为什么,我会多玩它,但我猜它不喜欢24小时系统。

乔纳斯