#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. Это нормально — пожалуйста, не забудьте принять ответ, хотя 🙂