为什么在 iOS Swift 3 中尝试使用 dateFormatter 时得到 nil?
Why get nil when try to using dateFormatter in iOS Swift 3?
我尝试将字符串格式的日期转换为日期格式,如下所示:
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let date = dateFormatter.date(from: "2017-03-22")
但得到零值。
我设置
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
但不起作用...
请帮忙解决这个问题。
已解决
我加了
dateFormatter.calendar = Calendar(identifier: .gregorian)
编写脚本并正常工作。
我想你的设备日历设置为不同于默认公历的设置,添加此行将解决问题:
dateFormatter.calendar = Calendar(identifier: .gregorian)
另外我注意到你的日期没有嵌入任何时区,如果你有一个固定的时区,也添加这一行:
dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
// Replace "UTC" with your desired timezone
最终代码是这样的:
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
dateFormatter.calendar = Calendar(identifier: .gregorian)
dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
let date = dateFormatter.date(from: "2017-03-22")
我尝试将字符串格式的日期转换为日期格式,如下所示:
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let date = dateFormatter.date(from: "2017-03-22")
但得到零值。
我设置
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
但不起作用...
请帮忙解决这个问题。
已解决
我加了
dateFormatter.calendar = Calendar(identifier: .gregorian)
编写脚本并正常工作。
我想你的设备日历设置为不同于默认公历的设置,添加此行将解决问题:
dateFormatter.calendar = Calendar(identifier: .gregorian)
另外我注意到你的日期没有嵌入任何时区,如果你有一个固定的时区,也添加这一行:
dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
// Replace "UTC" with your desired timezone
最终代码是这样的:
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
dateFormatter.calendar = Calendar(identifier: .gregorian)
dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
let date = dateFormatter.date(from: "2017-03-22")