Конвертировать формат даты в objc - PullRequest
0 голосов
/ 04 октября 2011

Ниже приведен код, который я использую для изменения даты с одного формата на другой.В следующем коде child.dob в формате NSDate в формате yyyy-MM-dd Я хочу изменить на формат MMM dd, yyyy Я могу изменить формат даты, однако здесь я получаю предупреждение.Пожалуйста, помогите мне конвертировать дату без предупреждения .. Заранее спасибо.

  NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd"];
    NSDate *date = [dateFormatter dateFromString:child.dob]; 
    [dateFormatter setDateFormat:@"MMM dd, yyyy"];
    dobLabel.text = [dateFormatter stringFromDate:date];

Это предупреждение, которое я получаю:: 801: предупреждение: несовместимые типы Objective C 'struct NSDate *', ожидаемое 'struct NSString *' при передаче аргумента 1 из dateFromString:

1 Ответ

0 голосов
/ 04 октября 2011

Да, вы используете NSDateFormatter dateFromString для преобразования объекта NSDate в отображаемую строку. Используйте NSDateFormatter stringFromDate, чтобы пойти другим путем.

Если вы используете NSLog для NSDate, то под прикрытием он вызывает description, который представляет фиксированный формат. Однако description не следует использовать для «реальной» работы, поскольку представленный формат не является строго определенным и может измениться в любое время.

Обратите внимание, что есть "особенность" NSDateFormatter в том, что она может ошибочно (на мой взгляд) добавлять или удалять значение AM / PM на основе настроек телефона, даже если вы явно указали формат в NSDateFormatter.

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