29

単一の NSDate の NSDateComponents を取得するにはどうすればよいですか? NSDateの秒、分、時間、日、月、年だけの2つの日付の違いのコンポーネントは必要ありませんか?

4

4 に答える 4

46

Apple docsの Listing 3: Getting a date's componentsに例があります。

NSDate *today = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc]
                         initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *weekdayComponents =
                    [gregorian components:(NSDayCalendarUnit | 
                                           NSWeekdayCalendarUnit) fromDate:today];
NSInteger day = [weekdayComponents day];
NSInteger weekday = [weekdayComponents weekday];

メソッドの呼び出しで必要なカレンダー単位を「or」する必要があることに注意してくださいcomponents

于 2011-06-25T15:22:56.087 に答える
8

NSCalendar のメソッドを使用:

- (NSDateComponents *)components:(NSUInteger)unitFlags fromDate:(NSDate *)date

お気に入り:

unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit |  NSDayCalendarUnit;
NSDate *date = [NSDate date];


NSCalendar * cal = [NSCalendar currentCalendar];
NSDateComponents *comps = [cal components:unitFlags fromDate:date];
于 2011-06-25T15:25:13.280 に答える
1

Swift 2.x では、必要なコンポーネントは次のように渡されます。

let gregorianCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian) 
let weekdayHourMinutes = gregorianCalendar?.components([.Weekday, .Hour, .Minute], fromDate: date)
于 2016-06-27T12:06:11.303 に答える