iOS中的日期格式?

时间:2014-12-12 06:11:33

标签: ios objective-c nsdate

在我的应用中,我使用的日期格式为'Thurs 10th April'。但我得到的日期格式如'Thurs 10 April'。我不知道如何更改格式。

1月1日 - 它应该像'Jan 1st'一样。 八月二号 - 它应该像'Aug 2nd'一样。 4月3日 - 它应该像'April 3rd'一样。

我想要这种格式的日期。我是Xcode的新手。请任何人都可以帮忙解决这个问题。

3 个答案:

答案 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)

以下是您可以做的事情:

  1. 将字符串分成组件并将其存储在数组中。

  2. 从该数组中获取日期部分并对其进行检查。

  3. 在当天附加适当的日后缀。

  4. 最后追加整个字符串。

  5. 以下是代码:

    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);
    
相关问题