NSDate - 获得一个月的日子(不是一年中的几天)?

时间:2012-02-04 14:08:16

标签: iphone objective-c nsdate nsdatecomponents

使用NSDateComponents我知道如何获取day组件,但是这给了我1到365的值,对吧?我需要得到特定月份的1-30天,我该怎么办?

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

感谢。

编辑:

我有这个:

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

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

1 个答案:

答案 0 :(得分:1)

day的{​​{1}}值会根据给定的日历为您提供月份日期:

NSDateComponents

给出

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

虽然2月,第4天将是今年的第35天。