将NSString转换为NSDate

我有datestring︰2010年10月11日,星期一。我怎样才能创build一个NSDate对象,然后从它得到不同的组件,如日,月,日,年。 请注意,该string的格式/语言环境可能会在运行时更改。

另一种可能性

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

使用NSDateFormatter来创buildNSDate,然后你可以通过NSDate属性访问它的组件(你需要调整下面的格式string):

 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 }