2

我尝试将字符串格式的日期转换为日期格式,如下所示:

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"             
let date = dateFormatter.date(from: "2017-03-22")

但是得到零值。

我设置

dateFormatter.locale = Locale(identifier: "en_US_POSIX") 

但不起作用...
请帮助解决这个问题。

4

2 回答 2

4

我想您的设备日历设置为与假定的默认公历不同,添加此行将解决问题:

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")
于 2017-03-13T15:28:16.803 回答
0

解决了

我添加了

dateFormatter.calendar = Calendar(identifier: .gregorian)   

编写脚本并正常工作。

于 2017-03-13T15:21:20.530 回答