我有一个webservice,以这种格式返回日期:
2013-04-14
Run Code Online (Sandbox Code Playgroud)
我如何弄清楚这对应的日期?
neb*_*ebs 11
此代码将获取您的字符串,将其转换为NSDate对象并提取当天的数字(14)和当天的名称(星期日)
NSString *myDateString = @"2013-04-14";
// Convert the string to NSDate
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-MM-dd";
NSDate *date = [dateFormatter dateFromString:myDateString];
// Extract the day number (14)
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit fromDate:date];
NSInteger day = [components day];
// Extract the day name (Sunday)
dateFormatter.dateFormat = @"EEEE";
NSString *dayName = [dateFormatter stringFromDate:date];
// Print
NSLog(@"Day: %d: Name: %@", day, dayName);
Run Code Online (Sandbox Code Playgroud)
注意:此代码适用于ARC.如果是MRC,最后添加[dateFormatter release].
获得工作日的另一种方法可以是:
NSString *myDateString = @"2013-04-14";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *date = [dateFormatter dateFromString:myDateString];
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSWeekdayCalendarUnit fromDate:date];
NSInteger weekday = [components weekday];
NSString *weekdayName = [dateFormatter weekdaySymbols][weekday - 1];
NSLog(@"%@ is a %@", myDateString, weekdayName);
Run Code Online (Sandbox Code Playgroud)