微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我试图从 Swift 5 输入一个格式化的日期字符串作为“yyyy-mm-dd H:i:s +0000”mySQL相反,我得到“yyyy-mm-dd H:i:s 0000”如何添加“+”?

如何解决我试图从 Swift 5 输入一个格式化的日期字符串作为“yyyy-mm-dd H:i:s +0000”mySQL相反,我得到“yyyy-mm-dd H:i:s 0000”如何添加“+”?

@objc func datePickerDidChange(_ datePicker: UIDatePicker) {
    
    let formatter = DateFormatter()
    formatter.dateStyle = DateFormatter.Style.medium
    birthdayTextField.text = formatter.string(from: datePicker.date)
    
    let compareDateFormatter = DateFormatter()
    compareDateFormatter.dateFormat = "yyyy/MM/dd HH:mm"
    let compareDate = compareDateFormatter.date(from: "2013/01/01 00:01")
    
    if datePicker.date < compareDate! {
        birthdayContinueButton.isHidden = false
    } else {
        birthdayContinueButton.isHidden = true
    }
}

解决方法

你问:

我得到“yyyy-mm-dd H:i:s 0000”。如何添加“+”?

代码片段中的日期字符串是“2013/01/01 00:01”。那里既没有“+0000”也没有“0000”(也没有秒)。因此无需添加或删除 +

FWIW,如果你 print 一个 Date 对象,是的,它会以 2013-01-01 00:01:00 +0000 的格式打印日期。但这无关紧要。这就是 print 在您的控制台上显示 Date 的方式。但是您并不关心 print 使用什么调试格式。您只关心 DateFormatter 是否正确解析了日期(以及单独的 DateFormatter 将如何准备日期字符串以在 UI 中显示)。

最重要的是,不要担心 print 如何显示 Date 对象。 (如果有的话,它包含用于调试目的的时区这一事实非常有用。)只要确保您的日期格式化程序正确解析/生成日期字符串。而且,当您想在 UI 中显示日期字符串时,请为此使用单独的 DateFormatter(但对于该格式化程序,不要 使用 dateFormat,而是使用 { {1}} 和 dateStyle)。有关详细信息,请比较 timeStyle documentation 中的“使用用户可见的日期和时间表示”和“使用固定格式的日期表示”讨论。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。