2010-10-12 95 views
1

我有日期字符串:2010年10月11日星期一。我怎樣才能創建一個NSDate對象,然後從它得到不同的組件,如日,月,日,年。請注意,該字符串的格式/語言環境可能會在運行時更改。將NSString轉換爲NSDate

+0

可能重複的[NSString到NSDate](http://stackoverflow.com/questions/1353081/nsstring-to-nsdate) – 2010-10-12 00:32:57

+0

號我需要比這更多:)。 – Abhinav 2010-10-12 00:35:17

回答

1

另一種可能性:

NSCalendar *calendar = [NSCalendar currentCalendar]; 
NSInteger units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit; 
NSDateComponents *components = [calendar components:units fromDate:date]; 
NSInteger year = [components year]; 
... 
+0

謝謝。有效。 – Abhinav 2010-10-12 03:46:10

4

使用NSDateFormatter創建NSDate的,那麼你可以通過NSDate的屬性訪問它的組件(你需要調整下面的格式字符串):

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZZ"]; 

if(NSDate *myDate = [df dateFromString:string]) { 
    //Do something with myDate 
} 
+0

我正在嘗試像date.month一樣提取月份,但它給我編譯錯誤。 – Abhinav 2010-10-12 00:39:05

+1

例如,您可以使用另一個具有自定義日期樣式的NSDateFormatter將日期轉換回NSString。如果你想分離它,你可以將它轉換爲月份數。檢查NSDateFormatter參考。 – Ben 2010-10-12 00:44:31