2010-10-12 94 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