NSDateFormatter return nil NSDate for specify date strings

I am trying to convert a string to date but NSDateFormatter returns nil for a specific date. In the code below all string are converted to Date except for date2 and date7. Any pointers as to what is wrong? Thanks

Code Block
let date1 = "Jan 01, 1941"
let date2 = "Oct 01, 1941"
let date3 = "Oct 13, 1941"
let date4 = "Sep 30, 1941"
let date5 = "Mar 31, 1941"
let date6 = "Oct 02, 1941"
let date7 = "Oct 01, 1941"
let dateStringFormatter = DateFormatter()
dateStringFormatter.dateFormat = "MMM dd, yyyy" //Using custom
dateStringFormatter.locale = Locale(identifier: "en_US_POSIX")
let date_1 : Date? = dateStringFormatter.date(from: date1)
let date_2 : Date? = dateStringFormatter.date(from: date2)
let date_3 : Date? = dateStringFormatter.date(from: date3)
let date_4 : Date? = dateStringFormatter.date(from: date4)
let date_5 : Date? = dateStringFormatter.date(from: date5)
let date_6 : Date? = dateStringFormatter.date(from: date6)
let date_7 : Date? = dateStringFormatter.date(from: date7)
print("\(String(describing: date_1)),\n\(String(describing: date_2)),\n\(String(describing: date_3)),\n\(String(describing: date_4)),\n\(String(describing: date_5)),\n\(String(describing: date_6)),\n\(String(describing: date_7))")


In my environment, none of the dates generates nil. What is the default timezone of your environment?
No problem either in Playground.

I get the following print:

Optional(1940-12-31 22:00:00 +0000),
Optional(1941-09-30 22:00:00 +0000),
Optional(1941-10-12 22:00:00 +0000),
Optional(1941-09-29 22:00:00 +0000),
Optional(1941-03-30 22:00:00 +0000),
Optional(1941-10-01 22:00:00 +0000),
Optional(1941-09-30 22:00:00 +0000)

Yes, changing time zone to US does work, My Time Zone is Indian Standard Time GMT+5:30.
I haven’t dug into this in detail but I suspect you’re hitting the problem described in Parsing Dates Without Times.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@apple.com"
NSDateFormatter return nil NSDate for specify date strings
 
 
Q