Search code examples
swifttimestampnsdatenstimeinterval

DateString to timeStamp for sorting in Swift


I have an array of object with dateString(of creation) as parametere. I wanna sort the array of objects based on timestamp(of creation).

For example,

array = ["dateString":"2018-03-06", "dateString":"2018-03-05"]

Solution

  • You can convert date string to date formate then compare with each to find sorted array.

    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "yyyy-dd-MM"// yyyy-MM-dd"
    
    var convertedArray: [Date] = []
    
    var dateArray = ["2018-03-06", "2018-03-05"]
    for dat in dateArray {
        let date = dateFormatter.date(from: dat)
        if let date = date {
            convertedArray.append(date)
        }
    }
    
    let ready = convertedArray.sorted(by: { $0.compare($1) == .orderedAscending })
    // For Descending use .orderedDescending 
    print(ready) //[2018-05-02 18:30:00 +0000, 2018-06-02 18:30:00 +0000]
    
    var newList = [String]()
    for date in ready {
        let dateformatter =  DateFormatter()
        dateformatter.dateFormat = "dd-MM-yyyy"
        let convertDate = dateformatter.string(from: date)
        newList.append(convertDate)
    }
    print(newList) //["03-05-2018", "03-06-2018"]