2017-02-10 18 views
0

私は奇妙な問題を発見しました。 NSDateFormatterを使用して1999-02-31 23:30:00のような無効な日付を解析しようとしました。無効な日付のNSDateFormatter

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プロパティを見つけました。 フォーマッタが設定されると、ヒューリスティックを使用して、文字列が意図した日付に推測します。推測と同様に、結果の日付が間違っている可能性があります(つまり、意図された日付以外の日付)。