如何使用Cocoa查找任何给定日期的星期几?

时间:2011-07-18 15:58:01

标签: iphone nsdatecomponents

我知道这是一个重复的查询,但我对这个问题感到困惑。 我需要知道如何获得像Mon,Tues这样的特定日期的日子,例如:2010年7月18日等。

感谢您的帮助!!

3 个答案:

答案 0 :(得分:1)

要打印出NSDate当天的文字表示,请尝试以下操作:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"EEEE"];
[dateFormatter release];

NSDate *myDate = [NSDate date];

NSString *day = [dateFormatter stringFromDate:myDate];

有关http://unicode.org/reports/tr35/tr35-10.html#Date_Format_Patterns

的更多信息

答案 1 :(得分:0)

试试这个

NSDateFormatter* theDateFormatter = [[[NSDateFormatter alloc] init] autorelease];
    [theDateFormatter setFormatterBehavior:NSDateFormatterBehavior10_4];
    [theDateFormatter setDateFormat:@"EEEE"];
    NSString *weekDay =  [theDateFormatter stringFromDate:[NSDate date]];

答案 2 :(得分:0)

NSString *dateString = @"20 July, 2011"; // select this from your database

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"dd MMMM, yyyy"];
NSDate *date = [dateFormatter dateFromString:dateString];

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [gregorian components:NSWeekdayCalendarUnit fromDate:date];
NSInteger weekday = [components weekday];
NSLog(@"%d", weekday);

请注意星期日是1.
2将是周一等...

编辑我的答案,向您展示如何将字符串转换为NSDate的示例。 ;)