2012-08-24 8 views
22

Nicht sicher, was das Problem ist, aber anstatt einen Monatsnamen "Juli" zu bekommen, bekomme ich "07".NSDateFormatter zeigt keinen vollen Monatsnamen, nur einstellige Nummer

dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setLocale:[NSLocale systemLocale]]; 
[dateFormat setTimeZone:[NSTimeZone localTimeZone]];  
[dateFormat setDateFormat:@"MMMM dd, h:mm a"]; 

Ich habe versucht, M, MM, MMM, MMMM, und alle von ihnen geben Sie mir eine Zahl, statt des Monatsnamens, wenn auch mit unterschiedlichen Mengen an führenden 0s.

+0

Ich denke, diese Zeile ist das Problem .. [dateFormat setLocale: [NSLocale systemLocale]]; Ich weiß nicht, was es bedeutet, 'systemLocale' zu ​​verwenden, aber Sie können' currentLocale' anstelle von 'systemLocale' versuchen – ila

Antwort

45

Stellt sich als ein Problem mit der zweiten Zeile, setLocale. Ich nehme an, dass das System standardmäßig keine englischen Monatsnamen verwendet, wenn die locale manuell eingestellt wurde? Ich lebe in einem Englisch sprechenden locale, aber vielleicht ist es egal.

In jedem Fall behebt die Einstellung des Gebietsschemas das Problem mit dem Monatsnamen.

7

-systemLocale ist nicht was Sie hier wollen. Wenn kein anderes Gebietsschema passt, wird ein Fallback-Gebietsschema zurückgegeben. Verwenden Sie -currentLocale, um das aktuelle Gebietsschema des Benutzers abzurufen.

auch:
Sie sollten NSDateFormatter ‚s +dateFormatFromTemplate:options:locale: Methode verwenden, um das richtige Datum Format zu erhalten. In einigen Sprachen kommt der Tag vor dem Monat usw. und umgekehrt.

Verwandte Themen