如何解决我试图从 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 举报,一经查实,本站将立刻删除。