首页 文章

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

提问于
浏览
1

使用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 回答

  • 1

    NSDateComponentsday 值根据给定的日历为您提供月份日期:

    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天 .

相关问题