1

使用 NSDateComponents 我知道如何获取日期组件,但这给了我一个从 1 到 365 的值,对吧?我需要获取特定月份的 1-30 天,我该怎么做?

例如,我有一个 NSDate,它可能是 5 月 16 日。我希望能够得到这一天,所以它返回 16。作为该月的第 16 天(不是一年中的第 16 天)。

谢谢。

编辑:

我有这个:

NSCalendar *cal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *comps = [cal components:NSDayCalendarUnit fromDate:[[NSUserDefaults standardUserDefaults] objectForKey:@"dateSaved"]];

然而 comps.day 在它应该等于保存日期时返回 1,例如 4。

4

1 回答 1

1

dayNSDateComponents根据给定的日历为您提供月份中的日期:

NSDate *date = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *comps = [gregorian components:NSDayCalendarUnit fromDate:date];
NSLog(@"%@ / %d", date, comps.day);

2012-02-04 15:27:36.682 testapp[1533:f803] 2012-02-04 14:27:36 +0000 / 4

虽然 2 月 4 日是一年中的第 35 天。

于 2012-02-04T14:28:24.733 回答