NSCalendar *gregorian = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
NSInteger year = [gregorian component:NSCalendarUnitYear fromDate:NSDate.date];
Hinweis: Es gibt mehrere Kalenderbezeichner neben NSGregorianCalendar. Verwenden Sie, was für Ihr Gebietsschema geeignet ist. Sie können nach beliebigen Komponenten suchen, die Sie möchten, indem Sie die Felder (z. B. NSYearCalendarUnit | NSMonthCalendarUnit) bitweise ODER verknüpfen und stattdessen components:fromDate
verwenden. Sie können darüber in der Date and Time Programming Guide lesen.
Mit Kalenderkomponenten als primitive Typen sind Vergleiche effizient.
Funktioniert stringFromDate? Ich denke, es sagt vielleicht nicht auf Selektor reagieren. Gibt es einen anderen Weg? – hmthur
Es funktioniert definitiv gut. '-stringFromDate:' ist eine 'NSDateFormatter' Methode: http://developer.apple.com/library/ios/documentation/cocoa/reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html#//apple_ref/occ/ instm/NSDateFormatter/stringFromDate: –
Das Datumsformat sollte @ "yyyy" (Kleinbuchstaben) sein. Der Großbuchstabe gibt das Jahr der Woche an, in dem das Datum liegt. Also für den 1. Januar 2011 gibt @ "YYYY" 2010 zurück. – Anna