我尝试将字符串格式的日期转换为日期格式,如下所示:
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.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")
关于swift - 为什么尝试在 iOS Swift 3 中使用 dateFormatter 时得到 nil?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42763734/