2010-03-16 3 views
7

Ich denke, die Lösung ist wirklich einfach, ich habe es nur online nicht gefunden.Gegeben Jahr, Monat und Tag, alles in int, wie würde ich ein NSDate generieren

Angenommen, ich habe int Jahr, int Monat, int Tag, int Stunde, int min, int sec .. Wie generiere ich NSDate daraus?

Ich weiß, dass wir [NSDate initWithString:] verwenden können, aber ich denke, es wird kompliziert, wenn Monat/Tag/Stunde/Minute/Sekunde eine Ziffer sind.

Antwort

13

nehme an, ich bin int Jahr gegeben, int Monat, int Tag, int Stunde, int min, int sec .. Wie erzeuge ich NSDate daraus?

Setzen Sie die Ints in ein NSDateComponents Objekt, dann ask an NSCalendar object to change that into a date.

+0

+1 das ist der richtige Weg es zu tun –

+0

+1 Ich wusste das vor langer Zeit aber hatte vergessen. Vielen Dank! –

0

Diese here fasst so ziemlich zusammen, wie es geht.

//create a string that looks like this, "October 22, 2009" or whatever the values are 
NSString* d = [NSString stringWithFormat:@"%@ %@, %@", month, day, year]; 
NSDate* date = [NSDate dateWithNaturalLanguageString:d]; 

Dieser Link zeigt auch andere Optionen zum Erstellen des Datums, wenn Sie diese bestimmte Methode nicht mögen.

gerade realisiert, dass Sie sagten, Sie Ints gegeben wurden ... Sie tun können, dass mit diesem String-Format:

[NSString stringWithFormat:@"%i/%i/%i", month, day, year]; 
+2

Dadurch werden in vielen Gebietsschemata falsche Ergebnisse zurückgegeben (alle, bei denen die Reihenfolge von Tag, Monat und Jahr nicht mit der Erstellung der Zeichenfolge übereinstimmt). –

Verwandte Themen