日期函数返回错误的结果

时间:2019-04-05 15:17:55

标签: swift nsdateformatter

我找不到等效的答案eg

请查看代码。我正在格式化从Web服务下载的传入字符串(项目[9])。

var cal_end_date: Date!

var dateFormatter = DateFormatter()

let tempEndDate = item[9]

print("item[9]", item[9]) // 20190331
print("tempEndDate", tempEndDate) //20190331

dateFormatter.dateFormat = "YYYYMMDD"
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.timeZone = TimeZone.autoupdatingCurrent

cal_end_date = dateFormatter.date(from:tempEndDate)!
print(#function, "cal_end_date:", cal_end_date!) //2019-01-31 05:00:00 +0000    

结束日期的月份错误!我已通过在固定日期的操场上运行代码来确认此结果。我在这里做错什么了吗? Swift 5有什么变化吗? 谢谢

1 个答案:

答案 0 :(得分:1)

您始终可以使用nsdateformatter.com来检查格式化程序的dateFormat是否正确(示例检查参考旁边)每个字母/字母代表什么)。

就您而言,您必须对dateFormat的大小写敏感。天和年用小写字母表示

dateFormatter.dateFormat = "yyyyMMdd"