如何使用 Swift 将字符串日期时间格式转换为另一种格式

How to convert string date time format to another format using Swift

在我的方案中,我试图将日期时间字符串的一种格式转换为另一种格式 26 Nov, 2019 - 2:53 AM to yyyy-MM-dd h:mm:ss。如何覆盖格式?

下面的代码返回空值

let dateString = "26 Nov, 2019 - 2:53 AM"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd hh:mm a"
dateFormatter.locale = Locale.init(identifier: "en_GB")
let dateres = dateFormatter.date(from: dateString)
print(dateres)
extension String {
func convertToDateFormate(current: String, convertTo: String) -> String {
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = current
    guard let date = dateFormatter.date(from: self) else {
        return self
    }
    dateFormatter.dateFormat = convertTo
    return  dateFormatter.string(from: date)
}
}

转换为所需的甲酸盐

let dateString = "12-10-2019"
let convertedDate = dateString.convertToDateFormate(current: "dd-MM-YYYY", convertTo: "YYYY-MM-dd")

试试这个

第 1 步:- 将此函数放在您的 class 文件中

func convertDate(date: String, dateFormat : String, convertFormat : String) -> String {
        let datetimeFormatOriginal = DateFormatter()
        datetimeFormatOriginal.dateFormat = dateFormat

        let convertedFormat = DateFormatter()
        convertedFormat.dateFormat = convertFormat

        if date == "" || date == "-" {
            return "-"
        }
        else {
            return convertedFormat.string(from: datetimeFormatOriginal.date(from: date)!)
        }
    }

步骤:- 2 现在使用这个函数转换日期

let convertedDate = convertDate(date: "26 Nov, 2019 - 2:53 AM", dateFormat: "dd MMM, yyyy - HH:mm aa", convertFormat: "yyyy-MM-dd hh:mm a")

print(convertedDate)

输出

"2019-11-26 12:53上午"