2

米国ロケールでアプリケーションを使用する場合、次の日付をフォーマットする必要があります: 1 月 1 日、7 月 2 日、11 月 28 日

どうすればいいですか?

で検索しましNSDateFormatterたが、適切なフォーマットを設定できず、デフォルトのフォーマットが長すぎます。

4

1 に答える 1

2
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"MMMM dd'st'"];

NSDate *now = [[NSDate alloc] init];

NSString *dateString = [format stringFromDate:now];
NSLog(@"%@",dateString);

これにより、必要な形式が得られますが、このように適切な「st」、「nd」、「rd」などを追加するには、いくつかの条件を追加する必要があり ます

これはあなたに役立つかもしれません

NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"MMMM dd"];

NSDate *now = [[NSDate alloc] init];

NSString *dateString = [format stringFromDate:[now dateByAddingTimeInterval:(-60*60*24*10)]];
NSMutableString *tempDate = [[NSMutableString alloc]initWithString:dateString];
int day = [[tempDate substringFromIndex:[tempDate length]-2] intValue];
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);
于 2012-04-11T10:11:33.047 に答える