Search code examples
iosswiftxcodemacosnsdateformatter

Convert string to particular date format getting nil in iOS


I am getting date in string format from server. So I am trying to formatting to particular format.

But it is getting nil.

"07September16 4:09 am", This I want to format like Sep 07 2016

I am doing it with following code

dateLabel.text = model().formatStringToDate(dateString: date)
    
func formatStringToDate(dateString: String) -> String {
    let dateStr = dateString
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "MMM d yyyy"
    let formattedDate = dateFormatter.date(from: dateStr)
    print("formattedDate \(formattedDate)")
    //I have to return formatted string here
}

Any suggestions?


Solution

  • That should work;

    // create `Date` from date string
    let dateStr = "07September16 4:09 am"
    let dateFormatterGet = DateFormatter()
    dateFormatterGet.locale = Locale(identifier: "en_US_POSIX") 
    dateFormatterGet.dateFormat = "ddMMMMyy h:mm a"
    let date = dateFormatterGet.date(from: dateStr)
    
    // convert back Date to string as Sep 07 2016
    let dateFormatterPrint = DateFormatter()
    dateFormatterPrint.dateFormat = "MMM dd yyyy"
    print(dateFormatterPrint.string(from: date!))