iOS получить метку времени UTC
Я хотел бы получить время UTC. Я не могу сделать это так [[NSDate date] timeIntervalSince1970];
потому что он возвращает метку времени в местном часовом поясе. Как получить метку времени в UTC в iOS?
редактировать
решено я могу использовать [[NSDate date] timeIntervalSince1970];
:)
2 ответов
см. ответ Павла здесь:получить текущую дату в миллисекундах
Он относится к использованию CFAbsoluteTimeGetCurrent();
что документально здесь.
Так как это системное время, просто правильно для смещения временного интервала в GMT.
тем не менее, использование вашего кода также работает, если вы исправите для локального часового пояса.
вы получаете смещение часового пояса, вызывая
[[NSTimeZone systemTimeZone] secondsFromGMT];
или
[[NSTimeZone systemTimeZone] secondsFromGMTForDate:[NSDate date]];
Just timeIntervalSince1970 возвращает время UTC как двойной (NSTimeInterval)
чтобы получить 32-битное представление (возможно, для взаимодействия со встроенными системами):
time_t timestamp = (time_t)[[NSDate date] timeIntervalSince1970];