String { let formatter = DateFo" /> String { let formatter = DateFo" /> String { let formatter = DateFo"/>

Date formatting "yyyy-MM-dd hh:mm:ss +0000" to "dd MMM" in swift

52 Views Asked by At

I want to format date string from "2024-04-02 18:30:00 +0000" to "02 Apr"

func convertToDateString(dateStr: String) -> String {
        let formatter = DateFormatter()
        formatter.dateFormat = "yyyy-MM-dd hh:mm:ss +0000"
        let date1  = formatter.date(from: dateStr)
        formatter.dateFormat = "dd MMM"
        var resultTime = ""
        if let date1 = date1 {
            resultTime = formatter.string(from: date1)
        }
        return "\(resultTime)"
    }

But I am getting nil.

How to convert it, anyone please help

1

There are 1 best solutions below

3
excitedmicrobe On BEST ANSWER

HH is for 24-hour time and hh is for 12-hour time. Provided date string is in 24-hour format.

func convertToDateString(dateStr: String) -> String {
    let formatter = DateFormatter()
    formatter.dateFormat = "yyyy-MM-dd HH:mm:ss Z" 
    if let date = formatter.date(from: dateStr) {
        formatter.dateFormat = "dd MMM"
        return formatter.string(from: date)
    } else {
        return ""
    }
}

You could also benefit from setting a locale, read more on DateFormatter

e.g.

// US English Locale (en_US)
formatter.locale = Locale(identifier: "en_US")
print(formatter.string(from: date)) "02 Apr"