2017-05-09 2 views
0

Ich versuche, die Datumszeichenfolge „06/18“ (MM/JJ) an den Komponenten Monat undJJ/MM datestring bis heute Komponenten

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 
} 

Warum sind die dateComponents Jahr 2017 und Monat 12 statt zu konvertieren von 2018 und 12?

Ist dies ein Zeitzonenproblem?

Gibt es einen sauberen Weg, um 2018 und 12 zu bekommen?

+2

Auch in dem Apple-docs: * "Ein häufiger Fehler ist YYYY zu nutzen." * –

+0

betrachtet mit 'yy' immer statt' YY' –

Antwort

3

Die dateFormat wurde geändert in MM/yy von MM/YY und Sie sind bereit zu gehen.

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

} 
+0

... na ja jetzt fühle ich mich dumm;) – MarkHim

+1

@MarkHim Es passiert Kumpel :) –