我让用户选择一个日期和时间,并将其保存为我在文本字段中显示的字符串,如下所示:
@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”。
我需要使用哪种格式将其转换回日期?我以为这很简单,因为我要做的就是将日期转换为字符串,然后再次返回,但这会造成很多麻烦。