CFAbsoluteTimeGetCurrent и DST - PullRequest
       42

CFAbsoluteTimeGetCurrent и DST

1 голос
/ 03 ноября 2011

Я разрабатываю приложение для iPhone, которое загружает изображения на веб-сервер. Эти фотографии имеют время, когда они были сделаны в имени файла. Поскольку их можно взять из любой точки мира, я должен уделять внимание часовым поясам и летнему времени. Я думал, что могу использовать CFAbsoluteTimeGetCurrent, который не должен быть локализован ([NSDate date] возвращает локализованную версию времени с или без «AM», «PM», «pm» или любым другим вариантом ... например, он возвращает Арабские символы, если ваш телефон установлен на арабском языке!).

Итак, можете ли вы предложить мне функцию для преобразования CFAbsoluteTimeGetCurrent в дату, подобную MySQL, что-то вроде "2011-11-03 14:12:10"?

Мой второй вопрос: как насчет часовых поясов и перехода на летнее время? CFAbsoluteTimeGetCurrent всегда возвращает дату UTC, независимо от того, как установлен часовой пояс iPhone? Это всегда без DST?

Конечно, я знаю, что локальная дата / время iPhone может быть неправильной, но точность в миллисекундах не важна для моего приложения:)

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 03 ноября 2011

Что на земле вы подразумеваете под

([NSDate date] возвращает локализованную версию времени с или без «AM», «PM», «pm» или любым другим вариантом ... например, возвращает арабские символы, если ваш телефон установлен на арабском языке язык!).

[NSDate date] возвращает объект NSDate*. Я предполагаю, что вы на самом деле имеете в виду, что вывод -[NSDate description] возвращает строку, локализованную в текущей локали пользователя, но тогда возникает вопрос: почему вы зависите от вывода -[NSDate date]? Если вам нужно отформатировать дату определенным образом, вы должны использовать NSDateFormatter .

0 голосов
/ 03 ноября 2011

CFAbsoluteTime представляет момент времени, независимый от часовых поясов или настроек локализации.Если вы хотите отформатировать дату (т. Е. Объект NSDate), вам следует взглянуть на NSDateFormatter, что позволяет вам указать точный формат и локализацию (если есть) выходной строки.(Если вам нужно работать на уровне Core Foundation, CFDateFormatter делает то же самое.)

...