首页 > 解决方案 > 将字符串转换为短格式的日期

问题描述

我让用户选择一个日期和时间并将其保存为我在文本字段中显示的字符串,如下所示:

@objc func dealDateSelected(sender: UIDatePicker) {
    let date = DateFormatter()
    date.dateStyle = .short
    date.timeStyle = .short
    date.timeZone = TimeZone.current
    date.locale = Locale.current

    limitedTimeTextField.text = date.string(from: sender.date)
}

然后我试图稍后将该文本字段转换回日期对象,但我无法让它工作。格式如下所示:“20 年 6 月 7 日,晚上 10:10”。我看到的所有转换日期的东西都与我使用的格式不同。我看到了一些关于 kCFDateFormatterShortStyle 的内容,但我找不到访问它的位置。

当我尝试这个

//Check Time
var dateEnding: Date?
if(limitedTimeSwitch.isOn) {
    if let dateChosen = limitedTimeTextField.text {
        let formatter = DateFormatter()
        formatter.timeZone = TimeZone.current
        formatter.locale = Locale.current
        formatter.dateStyle = .short
        formatter.timeStyle = .short

        dateEnding = formatter.date(from: dateChosen)
    }
}

我只得到零回来。我也尝试过使用

dateEnding = ISO8601DateFormatter().date(from: dateChosen)

但这也返回零。我的字符串以该格式正确显示为“20 年 6 月 7 日,晚上 10:10”。

我需要使用什么格式才能将其转换回日期?我认为这很简单,因为我所做的只是将日期转换为字符串,然后再返回,但这会造成很多麻烦。

炫耀转换的零值

标签: swiftxcodedatetime

解决方案


推荐阅读