My date from a string is always nil and I can't figure out why.
func getBirthdate() -> Date? {
let formatter = DateFormatter()
formatter.dateFormat = "MM/dd/yyyy"
formatter.dateStyle = .medium
formatter.timeStyle = .none
print(self.dob!)
let birthdate = formatter.date(from: self.dob!)
return birthdate
}
self.dob:
05/01/1984
You should either set .dateFormat
or .dateStyle
/.timeStyle
.
They are mutually exclusive, when you set .dateStyle
you reset .dateFormat
to one of preset date formats.
So, it should be:
func getBirthdate() -> Date? {
let formatter = DateFormatter() // Also, you should move initialisation out and reuse `DateFormatter`
formatter.dateFormat = "MM/dd/yyyy"
print(self.dob!)
let birthdate = formatter.date(from: self.dob!)
return birthdate
}