DateFormatter 返回有效字符串

Posted

技术标签:

【中文标题】DateFormatter 返回有效字符串【英文标题】:DateFormatter Returning with Valid String 【发布时间】:2019-06-28 14:37:50 【问题描述】:

我的字符串中的日期总是为零,我不知道为什么。

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

【问题讨论】:

dateStyle 和 `timeStyle` 正在覆盖您的格式。删除它们。 【参考方案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

【讨论】:

以上是关于DateFormatter 返回有效字符串的主要内容,如果未能解决你的问题,请参考以下文章

DateFormatter 返回错误的时间[重复]

使用 DateFormatter().date(from: String) 时返回的日期格式化程序

您可以使用 Swift DateFormatter 获取 Date 对象,对其进行格式化,然后将其作为 Date 对象返回吗?

DateFormatter 中的 Swift 语言错误? [复制]

swift DateFormatter

DateFormatter 不返回“HH:mm:ss”的日期