Преобразование форматов даты и времени - PullRequest
0 голосов
/ 07 мая 2011

Мне нужно преобразовать следующий формат в новый формат, используя NSDateFormatter.

'Пт, 25 марта 2011 10:16:00 -0700'.

Я пытался использовать формат "aaa, dd bbb YYYY HH: MM: SS ZHHMM", но он не работает это дает мне дату в прошлом.

Мне также нужно преобразовать его в восточный часовой пояс при создании новой даты.

Я использовал следующий код:

NSDateFormatter *newDateFormatter = [[NSDateFormatter alloc] init]; 
[newDateFormatter setDateFormat:@"dd MMM YYYY HH:mm:SS"];

1 Ответ

4 голосов
/ 20 ноября 2011

Давайте разберем эту строку на несколько частей:

Пт, 25 марта 2011 10:16:00 -0700 становится:

  • Пт: сокращенный день недели
  • 25: потенциально заполненный нулями день месяца
  • Март: сокращенный месяц
  • 2011: год
  • 10: потенциально заполненный нулями час (в 24-часовой формат, потому что нет AM / PM)
  • 16: потенциально заполненная нулями минута
  • 00: дополненная нулями секунда
  • -0700: смещение часового пояса

Теперь давайте рассмотрим шаблоны формата даты, которые NSDateFormatter поддерживает :

  • сокращенный день недели: EEE
  • заполненный нулями день месяца: dd
  • сокращенный месяц: MMM
  • год: y
  • заполненный нулями час (24 часа): HH
  • минута с добавлением нуля: mm
  • секунда с нулями: ss
  • смещение часового пояса: ZZZ

Таким образом, ваша строка формата должна быть: @"EEE, dd MMM y HH:mm:ss ZZZ".

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