Как отобразить дату как «15 ноября 2010» в iPhone SDK? - PullRequest
3 голосов
/ 15 ноября 2010

Привет,

Мне нужно отобразить дату как "15 ноября 2010" в iPhone SDK.

Как мне это сделать?

Спасибо!

Ответы [ 2 ]

1 голос
/ 25 ноября 2013

Я знаю, что отвечаю на что-то старое;но я сделал следующее.

@implementation myClass
    + (NSString *) dayOfTheMonthToday
        {
         NSDateFormatter *DayFormatter=[[NSDateFormatter alloc] init];
         [DayFormatter setDateFormat:@"dd"];
         NSString *dayString = [DayFormatter stringFromDate:[NSDate date]];
          //yes, I know I could combined these two lines - I just don't like all that nesting
         NSString *dayStringwithsuffix = [myClass buildRankString:[NSNumber numberWithInt:[dayString integerValue]]];

         NSLog (@"Today is the %@ day of the month", dayStringwithsuffix);
    }

+ (NSString *)buildRankString:(NSNumber *)rank
{
    NSString *suffix = nil;
    int rankInt = [rank intValue];
    int ones = rankInt % 10;
    int tens = floor(rankInt / 10);
    tens = tens % 10;
    if (tens == 1) {
        suffix = @"th";
    } else {
        switch (ones) {
            case 1 : suffix = @"st"; break;
            case 2 : suffix = @"nd"; break;
            case 3 : suffix = @"rd"; break;
            default : suffix = @"th";
        }
    }
    NSString *rankString = [NSString stringWithFormat:@"%@%@", rank, suffix];
    return rankString;
}
@end

Я взял предыдущий метод класса из этого ответа: NSNumberFormatter и 'th' 'st' 'nd' 'rd' (порядковые номера) окончания

1 голос
/ 15 ноября 2010

Вы можете использовать средство форматирования даты, как описано в этом сообщении :

// Given some NSDate* date
NSDateFormatter* formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setDateFormat:@"dd MMM yyyy"];
NSString* formattedDate = [formatter stringFromDate:date];

Я полагаю, что вы можете просто поставить "th" в конце dd в строке формата. как это:

@"ddth MMM yyy

но у меня нет моего Mac передо мной, чтобы проверить его. Если это не сработает, вы можете попробовать что-то вроде этого:

[formatter setDateFormat:@"dd"];
NSString* day = [formatter stringFromDate:date];
[formatter setDateFormat:@"MMM yyyy"];
NSString* monthAndYear = [formatter stringFromDate:date];
NSString* date = [NSString stringWithFormat:@"%@th %@", day, monthAndYear];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...