将NSString转换为NSDate

时间:2010-10-12 00:29:49

标签: ios objective-c nsstring nsdate

我有日期字符串:2010年10月11日星期一。如何从中创建一个NSDate对象,然后从中获取不同的组件,如日,月,日,年。请注意,此字符串的格式/区域设置可能会在运行时更改。

2 个答案:

答案 0 :(得分: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
}

答案 1 :(得分:1)

另一种可能性:

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