2016-08-01 6 views
-2

У меня есть система на основе linx, где мы не можем указать часовой пояс установленного времени. Поэтому каждый, кто устанавливает время на этом устройстве, устанавливает свое местное время. Теперь у меня есть требование, когда мне нужно вычислить GMT Time на основе локального времени, которое было на устройстве.Как рассчитать GMT Время, основанное на Местном времени в C

Я предполагаю, что мне нужно принимать входной сигнал, когда пользователь находится в некоторой переменной. Для примера timezone = EST-5: 00EDT, что означает, что местное время на 5 часов отстает от GMT.

Теперь у нас есть какие-либо функции в стандартной библиотеке C, которая будет вычислять GMT Time для меня, когда я передаю смещение.

Любая помощь в этом отношении высоко ценится. Я просмотрел веб-страницы, и все, что я мог найти, это только эти функции в приведенной ниже ссылке: http://linux.die.net/man/3/localtime_r. Я не мог найти какую-либо функцию, которая может рассчитать время, основанное на смещении.

Есть ли какой-либо другой подход для этого.

ответ

1

В любое время получите «локальное» время как `time_t '(которое будет значением за считанные секунды с эпохи), добавьте смещение по часовой стрелке, и у вас будет отметка времени в GMT.

По крайней мере, если вам не нужны такие вещи, как дневной сбережения или возможные прыжки секунд, которые произошли за последние несколько часов.

Или укажите требование, что установщики или клиенты установили правильный часовой пояс, чтобы вы могли использовать стандартные функции времени. Это часто самое простое решение, так как стоимость разработчика при обработке ошибок и осложнений, связанных с временем, часто намного дороже, чем одноразовая настройка какого-либо нового оборудования.

+0

Что вы сказали, это правильно. К сожалению, мне нужно также заботиться о дневном освещении, что является основной причиной, по которой я ищу стандартные функции, которые должны заботиться обо всех возможных случаях. Все, что обеспечивает устройство, - это просто установить время, но не зону. Таким образом, клиент просто устанавливает местное время на основе своих часов. С моей стороны можно рассчитать GMT Time. –