Почему я получаю "2010-01-01 00:00:00 +900" от "2010-12-31 15:00:00 +000"? - PullRequest
0 голосов
/ 31 декабря 2010

У меня есть NSDate, будет показано, как показано ниже, если я использовал NSLog(@"%@", date.description);

2010-12-31 15:00:00 + 0000

itбудет отображаться так, как если бы я использовал NSLog(@"%@", [date descriptionWithLocale:[[NSLocale currentLocale] localeIdentifier]]);

Суббота, 1 января 2011 года, 12:00:00 по стандартному времени Японии

Но это будет показано нижеесли бы я использовал NSLog(@"%@", [date formattedDateString]);

2010-01-01 00:00:00 + 0900

Где я могу ошибиться?

- (NSString *)formattedDateString {
    return [self formattedStringUsingFormat:@"YYYY-MM-dd HH:mm:ss ZZZ"];
}

- (NSString *)formattedStringUsingFormat:(NSString *)dateFormat {
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:dateFormat];
    NSString *ret = [formatter stringFromDate:self];
    [formatter release];
    return ret;
}

Ответы [ 3 ]

3 голосов
/ 31 декабря 2010

Я получил то, что мне нужно, как показано ниже:

- (NSString *) formattedDateString {
return [self formattedStringUsingFormat: @ "гггг-ММ-дд ЧЧ: мм: сс ZZZ"];
}

1 голос
/ 31 декабря 2010

У вас есть подкласс NSDate, верно? Мое единственное предположение, что вы допустили какую-то ошибку где-то еще в коде переопределения, возможно, когда устанавливали временные компоненты даты (так сказать), чтобы строка описания или ее исходные данные не были обновлены правильно.

Редактировать: О, у вас все получилось, отлично. Пару секунд опоздал. :) Ура!

0 голосов
/ 31 декабря 2010

Обе 2010-01-01 00:00:00 +900 и 2010-12-31 15:00:00 +000 указывают на одно и то же время.

Редактировать :
Обе 2011-01-01 00:00:00 +900 и 2010-12-31 15:00:00 +000 указывают на одно и то же время.

Вы живете в GMT + 9 (скажем, в Токио)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...