Objective C - Wie kann ich den Wochentag von NSDate?
Ich muss in der Lage sein, um den Wochentag von nsdate, ich habe den folgenden code und es immer 1 zurück. Ich habe versucht, ändern Sie den Monat, ich habe alles versucht, von 1 bis 12 ist, aber das Ergebnis der Woche am Tag ist immer 1.
NSDate *date2 = [[NSDate alloc] initWithString:[NSString stringWithFormat:@"%d-%d-%d", 2010, 6, 1]];
unsigned units2 = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekdayCalendarUnit;
NSCalendar *calendar2 = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components2 = [calendar2 components:units2 fromDate:date2];
int startWeekDay = [components2 weekday];
[date2 release];
[calendar2 release];
Mögliche Duplikate von Wie bekomme ich den Wochentag mit Cocoa Touch?
InformationsquelleAutor aryaxt | 2010-08-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bearbeiten für Mac:
Das format der Zeichenfolge werden —YYYY-MM-DD HH:MM:SS ±HHMM laut der docs, alle Felder zu pflichtfeldern werden
Alte Antwort (für iPhone und geprüft auf simulator):
Gibt es keine (öffentlichen)
-initWithString:
Methode inNSDate
, und was Sie erhalten, zurückgegeben wird nicht, was Sie erwarten.Verwenden Sie ein ordnungsgemäß konfiguriert (Sie müssen das Eingabe-format)
NSDateFormatter
und-dateFromString:
.Ah sorry, sah auf dem iPhone NSDate, die fehlt. Ich Editiere meine Antwort...
InformationsquelleAutor Eiko
Erstellen einer
NSDateFormatter
enthält nur den Wochentag zu tun, was Sie wollen.Wenn Sie brauchen, Internationalisierung, die
NSDateFormatter
gesendet werden kann, eine locale, welches die richtige übersetzung.Datum Formatierer gesteuert werden durch diese Norm: Unicode-Formate
ja, das ist das, was ich suchte
Wenn Sie möchten, dass die ganze Zahl, die Sie nur einen Satz: [Wochentag setDateFormat: @"e"]; Sie sollten auch festlegen, NSLocale... zB: NSLocale *deLocale = [[[NSLocale alloc] initWithLocaleIdentifier:@"de_DE"] autorelease]; [Wochentag setLocale:deLocale]; Ansonsten Donnerstag vielleicht 5 statt 4, wenn der Start-Tag der Woche ist Sonntag oder Montag..
InformationsquelleAutor Jon Shier
Habe ich das problem gelöst, Das problem war, dass das format meiner Datums-string falsch war:
und da ich don ' T care, über das ich mal zufällig passieren, eine Zeit, um das Ende der Zeichenfolge
InformationsquelleAutor aryaxt
Ich bin mit Xcode 6.4
Es gibt viele Möglichkeiten, um das setup ein NSDate. Ich gehe nicht über das hier. Hast du es geschafft einen Weg, mit einem string (Einer Methode, die ich vermeiden, weil es noch sehr anfällig für Fehler), und ich werde es auf andere Weise. Unabhängig davon, Zugriff auf Ihre Komponenten Wochentag oder setDay Methoden.
diese Weise können Sie Holen Sie sich ein oder legen Sie diese Komponenten wie diese:
und, natürlich, legen Sie
NSDate *date = [calendar dateFromComponents:components];
nur nach der änderung der Komponenten.Ich fügte hinzu, in der zusätzliche lokale und andere Komponenten für den Kontext, in den Fall, Sie möchten diese auch.
Es ist kostenlos, code, don ' T knock it.
InformationsquelleAutor jungledev
Jemand kommen hierher auf der Suche nach einer neueren Swift 4 Lösung:
let inputString = "2018-04-16T15:47:39.000Z"
let result = inputString.getDayOfWeek()
Ergebnis =
Monday
InformationsquelleAutor JaredH
Meisten upvoting Antwort in Swift 3.
InformationsquelleAutor Allen Wang
Ich habe folgende website, welche dazu beigetragen, mit der Einrichtung der Zeichenfolge abrufen, das format, das ich wollte auf meinem Datum
Coder Wand - Guide to objective c date formatieren
InformationsquelleAutor Roger Perez