我有这样的约会:
2020-10-01T00:00:00
我正在尝试使用此格式:
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
let dateRequired = formatter.date(from: self.objects[indexPath.row]["DateRequired"] as! String)
但是它总是返回nil。
这是我的完整代码,我在做什么错?
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
let dateRequired = formatter.date(from: self.objects[indexPath.row]["DateRequired"] as! String)
formatter.dateFormat = "yyyy-MM-dd"
let dateRequiredString = formatter.string(from: dateRequired!)
self.dateRequiredTextField.text = dateRequiredString
self.dateRequiredTextField.placeholder = "Date Required"
self.datePicker.datePickerMode = .date
let toolbar = UIToolbar()
toolbar.sizeToFit()
let doneButton = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(self.doneButtonPressed))
let space = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(self.cancelButtonPressed))
toolbar.setItems([cancelButton, space, doneButton], animated: false)
self.dateRequiredTextField.inputAccessoryView = toolbar
self.dateRequiredTextField.inputView = self.datePicker
到目前为止,您的代码没有任何内容。例如,这可以正常工作:
let s = "2020-10-01T00:00:00"
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
let dateRequired = formatter.date(from: s)
既然可以了,我们可能会得出结论,那就self.objects[indexPath.row]["DateRequired"]
可能不是您认为的那样。另一种可能性是您需要设置语言环境:
let s = "2020-10-01T00:00:00"
let formatter = DateFormatter()
formatter.locale = Locale(identifier:"en_US_POSIX")
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
let dateRequired = formatter.date(from: s)
但是请注意,您不应在此处使用DateFormatter。该用例正是ISO8601DateFormatter的用途,您会更乐于使用它,而不是尝试重新发明这个轮子。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句