IOS получает дату из строки даты

#ios #nsdate #nsdateformatter

#iOS #nsdate #nsdateformatter

Вопрос:

У меня есть эта строка даты 2014-05-01T00:00:00, и я хотел бы отобразить ее как 01/05/2014 00:00:00

Я знаю, что есть много вопросов и ответов по этой теме, и я внимательно посмотрел, но все вопросы, которые я видел, имели формат даты, аналогичный желаемому формату. Я попробовал приведенный ниже метод с настройкой зоны GMT или без нее

 -(NSDate *) getDateFromString:(NSString *)dateString
{
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm:ss"];
//    [dateFormat setLocale:[NSLocale currentLocale]];
    [dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
    NSDate *date = [dateFormatter dateFromString:dateString];

    return date;
}
  

Комментарии:

1. Было бы полезно, если бы ваш формат даты действительно соответствовал формату даты в строке, которую вы анализируете.

2. Чтобы объяснить: ваша строка начинается с «2014», что, вероятно, год. Ваша строка формата начинается с «dd», которая ожидает номер месяца. Итак, как вы ожидаете, что это сработает?

Ответ №1:

Попробуйте этот формат даты:

 [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
  

Комментарии:

1. Это отсортировало его. Это дало мне временную дату 2014-05-01 00:00:00 0000, которую я отформатировал с помощью [форматировщик setDateFormat:@»дд / ММ / гг ЧЧ: мм: сс»];

2. Это нормально — пожалуйста, не забудьте принять ответ, хотя 🙂