以短格式将字符串转换为日期

时间:2020-06-07 19:12:40

标签: swift xcode date time

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

@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)
}

然后,我稍后尝试将该文本字段转换回日期对象,但无法使其正常工作。格式如下:“ 6/7 / 20,10:10 PM”。我所见过的所有用于转换日期的东西都与我使用的格式不同。我看到了有关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)

但是也返回nil。我的字符串以这种格式正确通过了“ 6/7 / 20,10:10 PM”。

我需要使用哪种格式将其转换回日期?我以为这很简单,因为我要做的就是将日期转换为字符串,然后再次返回,但这会造成很多麻烦。

Showing off the nil value of conversion

0 个答案:

没有答案
相关问题