swift - 将字符串转换为短格式的日期
问题描述
我让用户选择一个日期和时间并将其保存为我在文本字段中显示的字符串,如下所示:
@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”。
我需要使用什么格式才能将其转换回日期?我认为这很简单,因为我所做的只是将日期转换为字符串,然后再返回,但这会造成很多麻烦。
解决方案
推荐阅读
- reactjs - 如何清除 Redux 商店中的输入值?
- python - 创建独特元素的特殊列表
- java - 如何从 AndroidStudio 中的 Java 代码访问 REST API localhost
- arrays - 从 Json 解析键值以构建数组
- python - 如何使用 Python 将字节更改为十六进制?
- php - wordpress 重写规则的问题
- node.js - 无法从工作区启动配置启动工作区定义的任务 [VS Code]
- javascript - 未捕获的 SyntaxError:对象 + 属性中的意外标记“)”
- javascript - 如何使用包含数组的复杂对象构建查询字符串?
- javascript - 当存储在 useContext 中的对象更新 DOM 时不会重新渲染