我正在尝试从 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 中从日期字符串转换日期

将系统日期快速放入文本字​​段

如何在 Swift 中将此日期字符串格式“2018-03-30T14:36:10.093”格式化为日期 [重复]

无法将字符串转换为日期和日期转换为字符串 Swift 5.2

Swift中下一个可用日期的日期格式[重复]

Swift DateIntervalFormatter:即使间隔跨越多天,也将日期保留在字符串之外