2011-07-18 56 views
1

我知道這是一個重複性的查詢,但我很困擾這個問題。 我需要知道如何才能獲得星期一,星期二的特定日期,例如:2010年7月18日等。如何查找使用Cocoa的任何給定日期的星期幾?

感謝您的幫助!

+0

也許這有助於http://stackoverflow.com/問題/ 3694867/NSDate的,得到年 - 月 - 日? – Mat

+0

您是否想要打印出「Mon」,如果是這種情況,您需要利用NSDateFormatter –

+0

@Greg:我剛寫了縮寫,但應該是星期一,星期二等。 – Manoj

回答

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。 ;)

+0

pawan.mangal的解決方案會將星期幾作爲字符串返回,甚至可能是本地化的。但是,如果您想將其存儲在數據庫或類似的數據庫中,則整數可能更有用。 –

+0

您每次查看當前日期,可以說我從我的列表中選擇2007年12月11日,我想知道當天的數字是多少。希望我對你很清楚。 – Manoj

+0

那麼,你必須將該字符串(?)轉換爲NSDate並使用它來代替[NSDate date]; ;) –

0

試試這個

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

請檢查我的意見,以Jenox的答案。 – Manoj

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

+0

感謝Greg的回答。 – Manoj

相關問題