NSDateFormatter-Problem mit Wochenzahlen

8

Auf meinem Gerät (Ländereinstellungen USA) ist das Standard-Datumsformat "kurz" auf "1/5/13" (Monat / Tag / Jahr) eingestellt.

In den Systemeinstellungen habe ich eine Wochennummer "1/5/13 1" angehängt.

Mein Problem ist dieser Code, wo ich versuche, eine Zeichenfolge in ein Datum zu konvertieren:

%Vor%

Auf meinem Gerät wird Folgendes gedruckt:

%Vor%

Das ist 2000 , was nicht einmal 2013 ist.

Was verursacht dieses Problem?

    
cocoa.doc 12.08.2013, 18:12
quelle

3 Antworten

8

Ich komme zu spät zu dieser Diskussion und habe eine Reihe von Lösungen gesehen, aber was ich falsch sehe, ist, dass zwei inkompatible Datenformatelemente zusammen verwendet werden. Ihr ursprünglicher Ansatz ist fehlgeschlagen, weil die Zeichenfolge, von der Sie versuchen, Ihr Datum abzurufen, nicht mit dem übereinstimmt, für das NSDateFormatterShortStyle sorgt.

Wenn Sie die Woche des Jahres bewerten wollen, dann müssen Sie die kapitalisierte Form des Jahres verwenden; Dies bietet eine Art "Woche des Jahres" Kalender.

Lassen Sie uns Ihren ursprünglichen Code ein wenig umarbeiten, um das neue Format einzufügen:

%Vor%

Beachten Sie, dass ich dieses großgeschriebene Formular für das Jahr verwende. Mit 1 für die Woche des Jahres, bekomme ich das:

%Vor%

und mit 2 für die Woche des Jahres:

%Vor%

und mit 3:

%Vor%

Macht Sinn, oder? Der Tag in dem Datum wird um sieben Tage mit jedem Inkrement um eins der Woche des Jahres erhöht. Die Zeit ist natürlich verzogen, aber wir haben nie etwas besprochen, was wir in diesem Bereich beurteilen könnten, oder?

    
trudyscousin 20.08.2013, 05:06
quelle
2
%Vor%     
Hussain Shabbir 20.08.2013 08:31
quelle
-1

Sie müssen dateFromString method von NSDateFormatter ...

verwenden %Vor%

Wenn Sie mit der Wochennummer spielen möchten, verwenden Sie NSCalendar und NSDateComponents basierend auf Ihren Bedürfnissen ... (siehe dieses Code-Snippet)

%Vor%

Ich hoffe, das hilft.

    
Ashok 12.08.2013 18:51
quelle