使用objective-c解析jtring日期

时间:2011-05-24 03:11:27

标签: iphone objective-c++

我有像这样的NSString变量 dd-MM-YYYY例如30-05-2011。我怎样才能获得变量中的一天,变量中的月份和变量中的年份? 谢谢

3 个答案:

答案 0 :(得分:3)

使用NSDateFormatterNSDateComponents

特别是格式“dd-MM-YYYY”:

NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setDateFormat:@"dd'-'MM'-'yyyy"];
// Your date represented as a NSDate
NSDate *date = [formatter dateFromString:myDateString];
// Now, use NSCalendar / NSDateComponents to get the components
NSDateComponents *comps = [[NSCalendar currentCalendar] components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit
                                                          fromDate:date];

现在,您可以免费访问[comps day][comps month][comps year]

有关所有格式解析选项的说明,请参阅here。请记住,NSDateFormatter也支持此标准的旧版本,因此您必须小心。

答案 1 :(得分:2)

你可以做一些......

    NSString *dateAsString = @"30-05-2011";
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"d-MM-yyyy"];
    NSDate *datePlain = [formatter dateFromString:dateAsString]; 
    [formatter release];

然后使用NSDate对象datePlain

答案 2 :(得分:1)

查看dateFromString:的{​​{1}}方法。

NSDateFormatter

您可以对NSDateFormatter *df = [[NSDateFormatter alloc]init]; [df setDateFormat:@"yyyy-MM-dd"]; NSDate *d = [df dateFromString:@"2011-05-10"]; [df release]; 对象执行任何操作。