返回带有有效字符串的DateFormatter

时间:2019-06-28 14:37:50

标签: ios swift dateformatter

我从字符串中获得的日期始终为nil,我不知道为什么。

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

1 个答案:

答案 0 :(得分:1)

您应该设置.dateFormat.dateStyle / .timeStyle。 它们是互斥的,当您设置.dateStyle时,会将.dateFormat重置为预设的日期格式之一。

因此,应该是:

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
}