NSDateFormatter - Не получается правильная строка форматера - PullRequest
0 голосов
/ 20 апреля 2011

Я получаю неверно отформатированную строку даты, возвращенную NSDateFormatter. Вот мой код:

NSDateFormatter *aDateFormatter = [[NSDateFormatter alloc] init];
[aDateFormatter setDateFormat:@"dd-MM-yy HH:mm:ss"];
NSString *aFormattedElapsedTime = [aDateFormatter stringFromDate:refDate];

Здесь, refDate (NSDate объект) = 1970-01-01 00:36:22 + 0000

Вывод, который я получаю: «16h: 36m: 22s» вместо «00h: 36m: 22s».

Я что-то здесь не так делаю?

Ответы [ 3 ]

2 голосов
/ 20 апреля 2011

NSDateFormatter по умолчанию будет использовать текущий часовой пояс в системе, если вы не установите его с помощью setTimeZone.

[aDateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

Взгляните на NSDateFormatter для NSString?

1 голос
/ 20 апреля 2011

Попробуйте установить часовой пояс.(См. Мой комментарий выше)

NSDateFormatter *aDateFormatter = [[NSDateFormatter alloc] init];
[aDateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]
[aDateFormatter setDateFormat:@"dd-MM-yy HH:mm:ss"];
NSString *aFormattedElapsedTime = [aDateFormatter stringFromDate:refDate];
0 голосов
/ 20 апреля 2011

Кроме жизни в тихоокеанском времени, не совсем.Добавьте туда смещение часового пояса, и вы поймете, почему вы получаете это значение: NSDateFormatter форматирует дату в соответствии с местным временем, а не UTC.

...