从NSDate获取本月第一天的周日名称

时间:2013-06-07 09:40:49

标签: xcode cocoa date components weekday

我有一个NSDate,我想从该NSDate中找出本月第一天的周日名称。所以例如我得到“2013年5月15日”,我想返回“星期三”,因为“2013年5月1日”是星期三。这是我的测试代码;

    // Setup a Date and Formatter and load with a date
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd"];

    NSDate *date = [dateFormatter dateFromString:@"2013-05-10"];
    NSLog(@"Day In Month : %@", [dateFormatter stringFromDate:date]);

    // Setup a calendar and extract components and force to the first
    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    //NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDateComponents *dateComponants = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:[NSDate date]];

    [dateComponants setDay:1];

    date = [calendar dateFromComponents:dateComponants];
    NSLog(@"First Day : %@", [dateFormatter stringFromDate:date]);

    // Change the formatter for the Day name
    [dateFormatter setDateFormat:@"EEEE"];
    NSLog(@"Day Name : %@", [dateFormatter stringFromDate:date]);

这就是我的日志所说的......

Day In Month : 2013-05-10
First Day : 2013-06-01
Day Name : Saturday

六月约会在中间做什么?事实上,6月1日是星期六,但这对我没有帮助。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

替换

NSDateComponents *dateComponants = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:[NSDate date]];

NSDateComponents *dateComponants = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate: date];

答案 1 :(得分:0)

我是最高学历的白痴!!!!

    NSDateComponents *dateComponants = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:[NSDate date]];

应该是

    NSDateComponents *dateComponants = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:date];

看了一个小时......

相关问题