2016-06-21 3 views
1

Как конвертировать произвольную дату и время в UTC с помощью команды date в Linux?команда даты linux конвертировать произвольное время даты в utc

Использование следующего формата просто печатает мое указанное время и не конвертирует его.

# /usr/bin/date -u --date="2016-06-21 01:00:00" 
Tue Jun 21 01:00:00 UTC 2016 

Используя текущее системное время, как представляется, чтобы преобразовать в UTC правильно

# /usr/bin/date 
Tue Jun 21 08:48:44 EDT 2016 
#/usr/bin/date -u 
Tue Jun 21 12:48:55 UTC 2016 
+0

ОС обычно хранит дату внутри UTC. Он просто отображает его в соответствии с вашими определениями часовых поясов. Итак, 'date -u' ничего не преобразует. Не может быть корректного локального преобразования UTC для всех времен в часовых поясах, поддерживающих дневную экономию времени. – GMichael

+0

Непонятно, что вы имеете в виду здесь. _Используя следующий формат, просто печатает мое указанное время и не конвертирует его. – fedorqui

ответ

0

Если вы хотите иметь дату в UTC, перед именем регион:

$ date 
Tue Jun 21 15:00:10 CEST 2016 
$ TZ=UTC date 
Tue Jun 21 13:00:10 UTC 2016 

Если вы хотите для использования конкретной даты, просто используйте -d обычно:

$ TZ=UTC date -d"yesterday" 
Mon Jun 20 13:00:55 UTC 2016 
0

Вы можете использовать подстановку команд, чтобы получить желаемый результат. Команда в круглых скобках вернет количество секунд с эпохи. Затем date -u --date будет отформатировать дату до UTC.

date -u [email protected]$(date "+%s" --date="2016-06-21 01:00:00") 
Tue Jun 21 05:00:00 UTC 2016 

Вышеупомянутая команда преобразует произвольную дату и время в UTC, как требуется.

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