我正在尝试采用dd/mm/yyyy格式的字符串并将其转换为 NSDate,以便我可以存储生日。日、月、年经过验证是真实日期(也不是将来的日期),因此我知道它们是正确的。它们由用户作为文本字段输入,我想我可以制作dateString我想要的任何有用的格式。
let day = dayTextField.text
let month = monthTextField.text
let year = yearTextField.text
let dateString = "\(day)/\(month)/\(year)"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy"
let birthdate: NSDate = dateFormatter.date(from: dateString) as NSDate
Run Code Online (Sandbox Code Playgroud)
我的问题是当我尝试将日期字符串转换为 NSDate 时,最后一行出现以下错误:
'Date?' is not convertible to 'NSDate'; did you mean to use 'as!' to force downcast?
Run Code Online (Sandbox Code Playgroud)
我可以在“(from:) dateString”之后强制强制转换,但我认为这不是正确的做法。
您能提供的任何帮助和见解将不胜感激!谢谢
如果您让用户从 中选择日期,那么对您和用户来说都会更容易UIDatePicker。这有很多优点:
date。你不需要所有这些格式化程序之类的东西maximumDate属性选择的最大日期。这样您就不必手动检查它是否在将来。就设置maximumDate到现在吧。只需记住将其设置datePickerMode为.date!
至于转换为NSDate,您可以通过以下表达式轻松完成:
datePicker.date as NSDate
Run Code Online (Sandbox Code Playgroud)
如果您坚持使用三个文本字段,您可以这样做:
dateFormatter.date(from: dateString) as NSDate? // note that this produces an optional
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4685 次 |
| 最近记录: |