我有像这样的NSString变量 dd-MM-YYYY例如30-05-2011。我怎样才能获得变量中的一天,变量中的月份和变量中的年份? 谢谢
答案 0 :(得分:3)
使用NSDateFormatter
和NSDateComponents
。
特别是格式“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];
对象执行任何操作。