2017-05-09 16 views
0

私は部品の月に日付文字列「06/18」(MM/YY)を変換しようとするとdateComponents年2017、代わりに月に12あるなぜYY/MM日付ストリング

let dateString = "06/18" 

let dateFormatter = DateFormatter() 
dateFormatter.dateFormat = "MM/YY" 
if let date = dateFormatter.date(from: dateString) { 
    let calendar = Calendar(identifier: .gregorian) 
    let components = calendar.dateComponents([.month, .year], from: date) 
    // contains year: 2017 month: 12 isLeapMonth: false 
} 

ています2018年と12年の?

これはタイムゾーンの問題ですか?

2018年と12年を得るためのクリーンな方法はありますか?

+2

は:* "よくある間違いは、YYYYを使用することです。" * –

+0

を常に代わりYY' –

答えて

3

dateFormatMM/yyからMM/YYに変更しました。すべての設定が完了しました。アップルのドキュメントで

let dateFormatter = DateFormatter() 
dateFormatter.dateFormat = "MM/yy" 
if let date = dateFormatter.date(from: dateString) { 

} 
+0

'の' yy'の使用を検討...よく、今私は愚かな感じ;) – MarkHim

+1

@MarkHimそれは仲間が起こる:) –

関連する問題