DateFormat от даты получить неправильную дату - PullRequest
3 голосов
/ 05 июля 2011
NSLog(@"Time From DB %@", mytime.beginTime);     
NSDateFormatter *timeFormatter = [[NSDateFormatter alloc] init];
[timeFormatter setDateFormat:@"hh:mm a"];
UILabel *timeLabel = (UILabel *)[cell viewWithTag:1];
timeLabel.text = [timeFormatter stringFromDate:mytime.beginTime];
NSLog(@"Time after formatting %@", timeLabel.text);
[timeFormatter release];

Консоль

2011-07-05 11:16:09.331 My project[1907:207] Time From DB 2011-05-10 13:54:09 +0000
2011-07-05 11:16:09.331 My project[1907:207] Time after formatting 04:54 PM

Почему времена разные? Как это исправить?

Ответы [ 2 ]

5 голосов
/ 05 июля 2011

Используется часовой пояс пользователя (по умолчанию).Если вы хотите это в GMT, вам нужно будет установить часовой пояс форматера даты.

[timeFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];

Кстати, времена не отличаются.Время одно и то же, но представлено в разных часовых поясах.

2 голосов
/ 05 июля 2011

Дата 2011-05-10 13:54:09 + 0000 имеет значение в часовом поясе GMT , как вы можете заметить по + 0000 в день.Таким образом, при преобразовании форматировщик даты использует часовой пояс телефона, то есть часовой пояс вашего местоположения, который, кажется, составляет -03: 00 .Таким образом, чтобы преобразовать дату в часовом поясе GMT ​​в дату часового пояса GMT, вам необходимо явно установить часовой пояс форматера даты в GMT, если GMT не является часовым поясом по умолчанию для телефона, как указано в ответе @ Deepak.

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