在我的应用中,我使用的日期格式为'Thurs 10th April'
。但我得到的日期格式如'Thurs 10 April'
。我不知道如何更改格式。
1月1日 - 它应该像'Jan 1st'
一样。
八月二号 - 它应该像'Aug 2nd
'一样。
4月3日 - 它应该像'April 3rd'
一样。
我想要这种格式的日期。我是Xcode的新手。请任何人都可以帮忙解决这个问题。
答案 0 :(得分:2)
看一下可爱的,如果复杂的NSDateFormatter类。当你在那里时,与她的朋友,NSLocale,NSTimeZone,NSCalendar,NSDate和NSDateComponents会面。另请务必阅读日期和版本; Apple的时间编程指南(并再次阅读。)
答案 1 :(得分:2)
我假设您的日期已准备好用于可变字符串。如果是,您可以使用以下内容获得所需的输出。
NSMutableString *mutableStrDate = // Your date in Mutable String Format.
int day = [[mutableStrDate substringFromIndex:[mutableStrDate length] - 2] intValue];
switch (day)
{
case 1:
case 21:
case 31:
[mutableStrDate appendString:@"st"];
break;
case 2:
case 22:
[mutableStrDate appendString:@"nd"];
break;
case 3:
case 23:
[mutableStrDate appendString:@"rd"];
break;
default:
[mutableStrDate appendString:@"th"];
break;
}
NSLog(@"Formatted Date with %@",mutableStrDate);
希望这有帮助。
答案 2 :(得分:1)
以下是您可以做的事情:
将字符串分成组件并将其存储在数组中。
从该数组中获取日期部分并对其进行检查。
在当天附加适当的日后缀。
最后追加整个字符串。
以下是代码:
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"EEE dd MMMM"];
NSDate *now = [NSDate date];
NSString *dateString = [format stringFromDate:now];
NSArray*tempString1 = [dateString componentsSeparatedByString:@" "];
NSMutableString *tempDate = [[NSMutableString alloc]initWithString:[tempString1 objectAtIndex:1]];
int day = [[tempString1 objectAtIndex:1] intValue];
NSLog(@"%d",day);
switch (day) {
case 1:
case 21:
case 31:
[tempDate appendString:@"st"];
break;
case 2:
case 22:
[tempDate appendString:@"nd"];
break;
case 3:
case 23:
[tempDate appendString:@"rd"];
break;
default:
[tempDate appendString:@"th"];
break;
}
NSLog(@"%@",tempDate);
NSString *str1 = [[tempString1 objectAtIndex:0] stringByAppendingString:@" "];
NSString *str2 = [str1 stringByAppendingString:tempDate];
NSString *str3 = [str2 stringByAppendingString:@" "];
NSString *finalDate = [str3 stringByAppendingString:[tempString1 objectAtIndex:2]];
NSLog(@"%@",finalDate);