2017-02-10 63 views
0

我剛剛發現了一個奇怪的問題。 我試圖用NSDateFormatter解析無效日期,如1999-02-31 23:30:00NSDateFormatter的無效日期

var str = "1999-02-31 23:30:00" 
var f = DateFormatter() 
f.dateFormat = "yyyy-MM-dd HH:mm:ss" 
f.locale = Locale(identifier: "it") 
// f.calendar = Calendar.current 
f.timeZone = TimeZone(identifier: "Europe/Rome")! 
let parsedDate = f.date(from: str) 

如果不解析日曆,則結果爲nil;一旦你設置它的結果是調整日期加上錯誤的日期(1999年3月3日)。

這是一個已知問題還是我錯過了什麼?

回答

0

我發現isLenient屬性。 一旦設置格式化程序將使用啓發式來猜測字符串預期的日期。就像任何猜測一樣,它可能會得到錯誤的結果日期(也就是說,不是有意的日期)。