如何正确地将字符串转换为日期?
How to convert string to date correctly?
为什么 dateFormatter return 来自无效格式字符串的正确日期?
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let date = dateFormatter.date(from: "2020/////07////////10") //"Jul 10, 2020 at 12:00 AM"
这可能是他们算法的一部分。
如果您希望格式化程序为 return nil
在这种情况下,您可以将 dateFormat 更改为:
dateFormatter.dateFormat = "yyyy/MM/dd"
结果
let date = dateFormatter.date(from: "2020/////07////////10") // nil
let date2 = dateFormatter.date(from: "2020/07/10") // Jul 10, 2020 at 12:00 AM"
let date3 = dateFormatter.date(from: "2020.07.10") // Jul 10, 2020 at 12:00 AM"
我做了 运行 你的代码,它给出了 nil
然而如果我输入正确的日期格式然后我收到输出
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let date = dateFormatter.date(from: "2020-7-10")
print(date) // Optional(2020-07-10 00:00:00 +0000)
我会说更多 - 它也出乎意料
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let dotDate = dateFormatter.date(from: "2020....07...10") // Optional(2020-07-09 21:00:00 +0000)
let commaDate = dateFormatter.date(from: "2020,,,,07,,,,10") // Optional(2020-07-09 21:00:00 +0000)
我的版本可能是苹果内部实现的问题,与ASCII码对比table,其中这些字符的编码(,
,-
,.
,/
) 按顺序排列(从 44 到 47)
为什么 dateFormatter return 来自无效格式字符串的正确日期?
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let date = dateFormatter.date(from: "2020/////07////////10") //"Jul 10, 2020 at 12:00 AM"
这可能是他们算法的一部分。
如果您希望格式化程序为 return nil
在这种情况下,您可以将 dateFormat 更改为:
dateFormatter.dateFormat = "yyyy/MM/dd"
结果
let date = dateFormatter.date(from: "2020/////07////////10") // nil
let date2 = dateFormatter.date(from: "2020/07/10") // Jul 10, 2020 at 12:00 AM"
let date3 = dateFormatter.date(from: "2020.07.10") // Jul 10, 2020 at 12:00 AM"
我做了 运行 你的代码,它给出了 nil
然而如果我输入正确的日期格式然后我收到输出
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let date = dateFormatter.date(from: "2020-7-10")
print(date) // Optional(2020-07-10 00:00:00 +0000)
我会说更多 - 它也出乎意料
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let dotDate = dateFormatter.date(from: "2020....07...10") // Optional(2020-07-09 21:00:00 +0000)
let commaDate = dateFormatter.date(from: "2020,,,,07,,,,10") // Optional(2020-07-09 21:00:00 +0000)
我的版本可能是苹果内部实现的问题,与ASCII码对比table,其中这些字符的编码(,
,-
,.
,/
) 按顺序排列(从 44 到 47)