为什么NSDateFormatter在给定空字符串(“”)时不返回nil

时间:2016-06-27 08:42:54

标签: ios iphone swift nsdateformatter

我有一个简单的问题。 根据苹果官方文档 https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/#//apple_ref/occ/instm/NSDateFormatter/dateFromString

NSDateFormatter.dateFromString(String)将返回

  

使用接收器的当前设置解释的字符串的日期表示。如果dateFromString:无法解析字符串,则返回nil。

然后当我给它一个空字符串“”时,它应该返回nil吗? 当我在操场上这样做时

let date = ""
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyyMMdd"
print(dateFormatter.dateFromString(date))

它给了我

"Optional(1999-12-31 15:00:00 +0000)\n"

这是否属于正常行为? 或者我做错了什么?

谢谢

2 个答案:

答案 0 :(得分:1)

完全。如果无法解析字符串,它将返回nil,但如果使用空字符串,则默认返回该日期。

更改""的{​​{1}}或其他任何内容,如果它是" "您想要获得的内容,请填写它。

答案 1 :(得分:1)

  

如果dateFromString:无法解析字符串,则返回nil

简单的答案是,LF确实设法解析空dateFromString。如果您尝试在string中输入错误的数据,请说string,那么您将获得"0"

为什么会这样?我假设它只是他们编写类的方式,因为日期格式化程序确实跳过了缺少的数据并尝试完成它。可能没有"一切都缺失"。