日期函数返回错误的结果

问题描述 投票:-1回答:1

我找不到能为我解决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有什么变化吗?谢谢

swift nsdateformatter
1个回答
1
投票

您可以随时使用nsdateformatter.com来检查格式化程序的dateFormat是否正确(在示例检查参考旁边,显示每个字母/字母代表的内容)。

在你的情况下,你必须小心dateFormat的区分大小写。日期和年份用小写字母表示

dateFormatter.dateFormat = "yyyyMMdd"
© www.soinside.com 2019 - 2024. All rights reserved.