我正在尝试从 Swift 5 输入格式化的日期字符串为“yyyy-mm-dd H:i:s +0000”mySQL。相反,我得到“yyyy-mm-dd H:i:s 0000”。如何添加“+”?
Posted
技术标签:
【中文标题】我正在尝试从 Swift 5 输入格式化的日期字符串为“yyyy-mm-dd H:i:s +0000”mySQL。相反,我得到“yyyy-mm-dd H:i:s 0000”。如何添加“+”?【英文标题】:I'm trying to enter a formatted date string as "yyyy-mm-dd H:i:s +0000" mySQL from Swift 5. Instead, I get "yyyy-mm-dd H:i:s 0000". How to add "+"? 【发布时间】:2021-06-24 15:53:56 【问题描述】:@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
【问题讨论】:
为什么不在 BDD 中保存时间戳?本来会更好。对于您的日期格式unicode.org/reports/tr35/tr35-31/… ? 我正在学习一门课程,说明是将生日输入为 VARCHAR,但您的建议效果很好。谢谢! 【参考方案1】:你问:
我得到“yyyy-mm-dd H:i:s 0000”。如何加“+”?
您的代码 sn-p 中的日期字符串是“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
,而是使用 dateStyle
和 @ 987654336@)。有关详细信息,请比较 DateFormatter
documentation 中的“使用用户可见的日期和时间表示”和“使用固定格式的日期表示”讨论。
【讨论】:
Rob,你的答案被截断了。 “只要确保你的约会对象”......什么?确保它们成功创建? 谢谢。修复了那个句子片段。以上是关于我正在尝试从 Swift 5 输入格式化的日期字符串为“yyyy-mm-dd H:i:s +0000”mySQL。相反,我得到“yyyy-mm-dd H:i:s 0000”。如何添加“+”?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 中将此日期字符串格式“2018-03-30T14:36:10.093”格式化为日期 [重复]