使用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。
答案 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天。