2013-11-15 1 views
1

У меня есть географическая координата, связанная с локальной меткой времени. Из этой информации я хотел бы получить UTC 0 раз в этом месте в то время.От GPS-координаты и местное время на UTC 0 (Время Zulu)

Например, предположим, что у меня есть координата, указывающая на место в Риме, с местной меткой времени 15 ноября 2013 года 13:00. Рим в ноябре (с учетом летнего времени) в UTC + 1. Таким образом, выход должен быть: 15 ноября - 2013 12:00.

Конечно, функция, которая принимает координаты и местную метку времени и выводит время UTC 0, должна знать, в какую страну указывается определенная координата, а также должна знать политику летнего времени в этой стране.

Знаете ли вы, есть ли такая услуга?

Благодаря

+0

Всегда есть ошибка, связанная с привязкой координаты к локальной отметке времени; гораздо лучше - триплекс: координата, время UTC, часовой пояс в форме (Страна/Город) – AlexWien

ответ

0

Вот то, что делает гео часть: http://www.earthtools.org/webservices.htm#timezone

Фактическое вычисление часть должна быть легкой (локальная метка + смещение)

+0

Это работает, если вы ищете * текущее * время, но произвольное время может иметь или не иметь такое же смещение в зависимости от того, будет ли DST был активен. К сожалению, я не нашел ничего лучшего. –

+0

Я добавил ответ с API Google, который содержит метку времени в запросе. –

0

Google имеет Time Zone API, который может сделать это. Требуется указать и метку времени и возвращает rawOffset и dstOffset, которые необходимо добавить вместе. Затем вы можете изменить свою метку времени, чтобы получить время UTC.

utcOffset = rawOffset + dstOffset 
utcTimestamp = timestamp - utcOffset 

Конечно, он ожидает UTC метки времени, поэтому результат может все еще быть смещены на один час, если вы недалеко от границы летнего времени.

Смежные вопросы