Wie man NSDate für 00:00 Uhr am Tag der [NSDate date]?

Ich brauche, um ein NSDate-Objekt für 00:00(Beginn des Tages) von [NSDate date], sagen wir mal, wenn der aktuell ist es 11:30 Uhr(zurückgegeben von [NSDate date]), auf 01/06/2012, jetzt muss ich ein NSDate für 00:00 Uhr auf 01/06/2012.

Habe ich noch nicht ausprobiert, aber was in meinem Kopf ist:

NSDate *now = [NSDate date];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit) fromDate:now];
[components setHour:0];
[components setMinute:0];
[components setSecond:0];
NSDate *morningStart = [calendar dateFromComponents:components];

So bekomme ich als erstes aktuelle Datum(sagen, es ist 01/06/2012), und konstruieren eine NSDateComponent für das Datum, dann setze ich Stunde/minute/Sekunde auf 0 und das Jahr/Monat/Tag sollte nicht geändert werden(ie. 01/06/2012), dann erstelle ich ein NSDate für diese Komponente festlegen und kann ich ein Datum von 00:00:00 01/06/2012?

  • Überprüfen Sie die Antwort von poozolax. Es ist viel besser und es ist 100% richtig!!!!
InformationsquelleAutor hzxu | 2012-06-21
Schreibe einen Kommentar