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];