Есть ли способ проверить, в каком часовом поясе я сейчас нахожусь в Linux?
linux
ubuntu-10.04
Питер Мортенсен
источник
источник
date
скажу.echo $TZ
ничего не возвращает для меня.Если вы имеете в виду из консоли, просто введите:
источник
+07
для меня. Чтобы получитьRegion/City
Linux на основе Debian / Arch, посмотрите этот ответ .Если вы хотите числовой часовой пояс:
date +'%:z %Z'
Образец вывода:
источник
:z EST
date
. Версия BusyBox печатает что-то бессмысленное, "%: z CEST" в моем случае.linux
ubuntu-10.04
Вместо этого я хотел найти часовой пояс в форме "США / Восток" или "Европа / Лондон". Вы можете найти это в:
ZONE="US/Eastern"
в / etc / sysconfig / clockили вы можете попытаться сопоставить / etc / localtime с одним из файлов в / usr / share / zoneinfo; досадно, что это не символическая ссылка, но вы можете, например,
найти подходящие файлы - возможно, есть лучшие способы сделать это, но это работает. Там будет несколько матчей.
источник
find /usr/share/zoneinfo/ -type f| xargs md5sum | grep $(md5sum /etc/localtime | cut -d' ' -f1)
Для Ubuntu попробуйте это:
Образец вывода:
Для других дистрибутивов Ссылка: https://unix.stackexchange.com/questions/110522/timezone-setting-in-linux
источник
timedatectl set-timezone
не обновляется/etc/timezone
. Посмотрите этот ответ для решения на основе/etc/localtime
.Иногда вы можете искать канонический часовой пояс , а не короткую форму, производимые ,
date %Z
напримерUS/Eastern
. В системах с,timedatectl
например, Fedora,timedatectl
выводит много полезной информации, включая текущую зону:К сожалению,
timedatectl
принимаетset-timezone
за команду, но не имеет соответствующейget-timezone
. Разобрать его следующим образом:источник
Так что я на Горе. Хотя приведенные выше советы по использованию переменных среды или просто выводу команды date иногда работают лучше, в зависимости от того, как вы хотите это использовать.
источник
Для часового пояса вы можете использовать геолокацию:
Или же:
http://wiki.archlinux.org/index.php/time#Time_zone
источник
/sbin/hwclock --systohc [--utc]
чтобы установить аппаратные часы.Ядро Linux всегда хранит и рассчитывает время как количество секунд с полуночи 1 января 1970 года по UTC, независимо от того, хранятся ли ваши аппаратные часы в формате UTC или нет. Преобразование в ваше местное время выполняется во время выполнения. Важно отметить, что если кто-то использует ваш компьютер из другого часового пояса, он может установить переменную среды TZ, и все даты и время будут отображаться правильно для своего часового пояса.
Если число секунд с 1 января 1970 года по Гринвичу хранится в виде 32-разрядного целого числа со знаком (как в вашей системе Linux / Intel), ваши часы перестанут работать где-то в 2038 году. В Linux нет проблем, связанных с Y2K , но у него есть проблема 2038 года. Надеемся, что к тому времени мы все будем работать под управлением Linux на 64-битных системах. 64-разрядные целые числа сохранят наши часы в хорошем состоянии до приблизительно 292271-миллионного года.
источник
Пара решений:
дал мне (соответственно):
Мой компьютер на UTC.
источник
Использование TZ или даты НЕ НАДЕЖНО, поскольку сообщает вам часовой пояс ПОЛЬЗОВАТЕЛЯ, а не системный часовой пояс по умолчанию.
Системный часовой пояс по умолчанию хранится в / etc / timezone (который часто является символической ссылкой на файл данных часового пояса, относящийся к часовому поясу). Если у вас нет / etc / timezone, посмотрите / etc / localtime. Обычно это часовой пояс сервера. / etc / localtime часто является символической ссылкой на файл часового пояса в / usr / share / zoneinfo. Этот путь к правильному файлу часового пояса также часто дает вам информацию о географии.
В более новых Linux есть timedatectl, который дает вам тонны информации при запуске команды.
(В качестве побочного узла, если у вас есть древняя система, в которой все еще используются жестко заданные часовые пояса OLD, вы, вероятно, можете скопировать на нее файл современного часового пояса, и он будет работать. Мне приходилось делать это много раз, чтобы разрешить изменение часовых поясов на старом оборудовании).
источник
Иногда
timedatectl set-timezone
не обновляется/etc/timezone
, поэтому лучше получить связующую зону из имени файла, на который/etc/timezone
указывает символическая ссылка :Рекомендации: в этом ответе .
источник
Вы можете показывать дату и часовой пояс одновременно:
источник