String Beschreibung von NSDate
-
13-09-2019 - |
Frage
Ich habe den folgenden Code:
[ [NSDate date] descriptionWithLocale: @"yyyy-MM-dd" ]
Ich möchte es ein Datum in folgendem Format zurück: "2009-04-23"
Aber es gibt: Montag, 23. April 2009 23.27.03 GMT + 03: 00
Was mache ich falsch?
Vielen Dank im Voraus.
Lösung
Sie haben die falsche Methode. Stattdessen versuchen, descriptionWithCalendarFormat:timeZone:locale:
[[NSDate date] descriptionWithCalendarFormat:@"%Y-%m-%d"
timezone:nil
locale:nil];
Beachten Sie auch, dass das Verfahren ein anderes Format als die in Ihrer Frage erwartet. Die vollständige Dokumentation für das kann hier .
EDIT: Obwohl als Mike erwähnt, sollten Sie wirklich sein NSDateFormatter
verwenden. Es gibt einige Probleme mit descriptionWithCalendarFormat:timezone:locale:
, dass Apple in der Dokumentation erwähnt.
Andere Tipps
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *dateString = [dateFormatter stringFromDate:[NSDate date]];
[dateFormatter release]; // delete this line if your project uses ARC
NSLog(@"%@",dateString);
Beachten Sie auch, dass für die meisten Fälle, NSDateFormatter
für seine Flexibilität zu bevorzugen ist.
Es gibt auch einen erheblichen Leistungsvorteil von Wiederverwendung von Datum Formatierer in vielen Anwendungen werden mußte.
Wenn Sie nicht über NSDate -descriptionWithCalendarFormat:timeZone:locale:
verfügbar (ich glaube nicht, dass iPhone / Cocoa Touch diese enthält) können Sie verwenden müssen, strftime und Affen um mit einigen C-Strings. Sie können den UNIX-Zeitstempel von einem NSDate mit NSDate -timeIntervalSince1970
erhalten.