为什么 NSDateFormatter 在给定空字符串(“”)时不 return nil
Why does NSDateFormatter not return nil when given empty string ("")
我有一个简短的问题。
根据苹果官方文档
https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/#//apple_ref/occ/instm/NSDateFormatter/dateFromString:
NSDateFormatter.dateFromString(字符串) 会 return
A date representation of string interpreted using the receiver’s current settings. If dateFromString: can not parse the string, returns nil.
那么当我给它一个空字符串""时,它应该return nil吗?
当我在操场上这样做时
let date = ""
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyyMMdd"
print(dateFormatter.dateFromString(date))
它给了我
"Optional(1999-12-31 15:00:00 +0000)\n"
这恰好是一种正常行为吗?
还是我做错了什么?
谢谢
没错。如果无法解析该字符串,它将 return nil
但如果您使用空字符串,它将默认 return 该日期。
将 ""
更改为 " "
或任何内容以填充它,如果它是 nil
您想要获得的内容。
If dateFromString: can not parse the string, returns nil
简单的答案是,dateFromString
确实设法解析了一个空的 string
。如果您尝试在 string
中输入错误的数据,例如 "0"
,那么您将得到 nil
。
为什么会这样?我假设这只是他们编写 class 的方式,因为日期格式化程序确实会跳过丢失的数据并尝试完成它。可能没有 "all is missing".
的情况
我有一个简短的问题。 根据苹果官方文档 https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/#//apple_ref/occ/instm/NSDateFormatter/dateFromString:
NSDateFormatter.dateFromString(字符串) 会 return
A date representation of string interpreted using the receiver’s current settings. If dateFromString: can not parse the string, returns nil.
那么当我给它一个空字符串""时,它应该return nil吗? 当我在操场上这样做时
let date = ""
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyyMMdd"
print(dateFormatter.dateFromString(date))
它给了我
"Optional(1999-12-31 15:00:00 +0000)\n"
这恰好是一种正常行为吗? 还是我做错了什么?
谢谢
没错。如果无法解析该字符串,它将 return nil
但如果您使用空字符串,它将默认 return 该日期。
将 ""
更改为 " "
或任何内容以填充它,如果它是 nil
您想要获得的内容。
If dateFromString: can not parse the string, returns nil
简单的答案是,dateFromString
确实设法解析了一个空的 string
。如果您尝试在 string
中输入错误的数据,例如 "0"
,那么您将得到 nil
。
为什么会这样?我假设这只是他们编写 class 的方式,因为日期格式化程序确实会跳过丢失的数据并尝试完成它。可能没有 "all is missing".
的情况