grabury
grabury

Reputation: 5559

How to set a date pickers date from a date string in swift

What is the correct way to set a date pickers date from a date string

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd/MM/YY"
let convertedStartDate = dateFormatter.dateFromString("1/3/15")
startDatePicker.date = convertedStartDate!

This does not work, convertedStartDate = nil

Upvotes: 1

Views: 6852

Answers (2)

Leo Dabus
Leo Dabus

Reputation: 236260

**You have to use "yy" instead of "YY"

let formatter = DateFormatter()
formatter.dateFormat = "d/M/yy"
formatter.locale = Locale(identifier: "en_US_POSIX")
if let startDate = formatter.date(from: "1/3/15") {
    print(startDate)  // 2015-03-01 03:00:00 +0000
}

You can also create an extension to handle that for you as follow:

extension String {
    func toDateFormatted(with string: String)-> Date? {
        let formatter = DateFormatter()
        formatter.dateFormat = "d/M/yy"
        formatter.locale = Locale(identifier: "en_US_POSIX")
        formatter.dateFormat = string
        return formatter.date(from: self)
    }
}
let string = "1/3/15"
if let date = string.toDateFormatted(with: "d/M/yy") {
     print(date)  // 2015-03-01 03:00:00 +0000
}  

If you need a reference to help you format your date, you can use this one below: enter image description here

Upvotes: 8

Fangming
Fangming

Reputation: 25261

Swift 3.0 version

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "d/M/yy"
if let convertedStartDate = dateFormatter.date(from: "1/3/15") {
    ...
}

Upvotes: 1

Related Questions