Разница NSDateFormatter

В чем разница между этими двумя форматами дат. Сначала дается фактическое время, но секунда, чтобы дать время купить добавление значения смещения часового пояса.

NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setTimeZone:[NSTimeZone systemTimeZone]]; [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"]; NSDate *dateConverted = [dateFormatter dateFromString:@"2013-12-02T12:15:43.182Z"]; NSLog(@"Date: %@",dateConverted); // 

Дата: 2013-12-02 12:15:43 +0000

 NSDateFormatter * dateFormatter1 = [[NSDateFormatter alloc] init]; [dateFormatter1 setTimeZone:[NSTimeZone systemTimeZone]]; [dateFormatter1 setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.SSS'Z'"]; NSDate *dateConverted1 = [dateFormatter1 dateFromString:@"2013-12-02T12:15:43.182Z"]; NSLog(@"%@",dateConverted1); 

Дата: 2013-12-02 06:45:43 +0000

Проблема со вторым форматом – все ненужные цитаты, особенно вокруг Z При цитировании Z это означает, что Z рассматривается как литерал, а не спецификатор формата часового пояса.

Избавьтесь от котировок вокруг Z и оба дадут тот же результат.

Второй формат даты неверен, «Z» не должен быть одинарным кавычками, что не позволяет ему считаться символом формата.

Также нужны только одиночные кавычки вокруг «Т», так что это не считается символом формата, а скорее буквальным.

См. Руководство пользователя ICU: Форматирование дат и времени

Давайте будем гением компьютера.