DevPace
БлогСправкаНовостиСкачатьДемоТарифыПривязка устройстваВойтиНачать

Время в терминале: как посмотреть и настроить дату и время в командной строке

TL;DR

Время в терминале: как посмотреть и настроить дату и время в командной строке

Время в терминале: как посмотреть и настроить дату и время в командной строке

Что называют «временем в терминале» и почему здесь возможна путаница

Слово «терминал» в поисковых запросах означает как минимум три разные вещи, и это стоит развести сразу, чтобы не тратить время на нерелевантный материал.

Первое и самое частое значение — терминал как эмулятор командной строки: окно, где вводят текстовые команды операционной системе. Именно об этом терминале и его времени пойдёт речь ниже: время в нём — это просто системное время компьютера, которое терминал показывает по запросу через ту или иную команду.

Второе значение — торговый терминал, например MetaTrader 4. Время там определяется не системными часами компьютера, а часовым поясом сервера брокера, и настраивается через настройки платформы, а не через командную строку операционной системы — это отдельная тема, не связанная с тем, что описано в этой статье.

Третье значение — терминал аэропорта. Вопросы про расписание рейсов, время бесплатной стоянки или пересадку между терминалами Шереметьево тоже не имеют отношения к командной строке — это справочная информация аэропорта, и искать её стоит на сайте самого аэропорта или у авиаперевозчика.

Дальше — только про терминал как интерфейс командной строки: как посмотреть в нём текущее время, как его изменить и почему точность системных часов имеет прямое значение для повседневной работы разработчика.

Как посмотреть время в терминале Linux и macOS

Команда date

Базовый и самый универсальный способ увидеть текущее время в терминале Linux или macOS — команда date без аргументов:

date

Она выводит день недели, дату, время и часовой пояс в формате, заданном локалью системы. Если нужен конкретный формат — например, только время без даты, — date принимает шаблон вывода:

date +"%H:%M:%S"

Такой вызов удобен в скриптах, где важно получить время в предсказуемом виде, а не в человекочитаемом формате по умолчанию.

timedatectl status в системах на systemd

В дистрибутивах, где инициализация системы построена на systemd (современный Ubuntu, Debian, Fedora, Astra Linux и большинство других актуальных сборок), есть более информативная команда:

timedatectl status

Она показывает не только текущую локальную дату и время, но и часовой пояс, время в UTC и — что важно — включена ли синхронизация системных часов по NTP и работает ли она сейчас. Это самый быстрый способ понять не просто «какое время показывает терминал», а можно ли этому времени доверять.

Часовой пояс и переменная TZ

Отображаемое время в терминале всегда зависит от часового пояса, который системе назначен. Посмотреть текущий часовой пояс можно той же командой timedatectl status, а временно вывести время в другом часовом поясе — без изменения системных настроек — переменной окружения TZ:

TZ="Europe/Moscow" date

Это удобно, когда нужно быстро проверить, какое время сейчас в другом регионе, не переключая часовой пояс всей системы.

Как посмотреть время в терминале Windows

В классической командной строке Windows (cmd.exe) текущее время показывает команда:

time /T

Без параметра /T команда time не только выводит время, но и предлагает ввести новое — это стоит иметь в виду, чтобы случайно не запустить смену времени вместо простого просмотра.

В PowerShell более гибкий вариант — командлет Get-Date, который возвращает полноценный объект даты и времени и позволяет сразу отформатировать вывод:

Get-Date -Format "HH:mm:ss"

Если на компьютере установлен WSL (Windows Subsystem for Linux), внутри его терминала действуют те же команды, что в обычном Linux, включая date и — в зависимости от дистрибутива — timedatectl.

Команды для просмотра времени: сводная таблица

Система / оболочка Команда для просмотра времени Дополнительно показывает
Linux / macOS (любой шелл) date дату, день недели, часовой пояс
Linux на systemd timedatectl status часовой пояс, UTC, статус NTP-синхронизации
Windows cmd time /T только время, без риска запустить смену
Windows PowerShell Get-Date объект даты/времени с гибким форматированием
WSL date или timedatectl как в Linux, независимо от времени Windows-хоста

Как изменить и настроить время в терминале

Ручная установка времени

В Linux вручную задать время можно командой date:

sudo date -s "2026-08-07 14:30:00"

В системах на systemd для той же задачи предпочтительнее timedatectl, потому что она сразу учитывает часовой пояс и не требует временно отключать автосинхронизацию отдельной командой:

sudo timedatectl set-time "14:30:00"

В Windows время и дату вручную задают той же командой time (без /T) или через панель настроек даты и времени — командная строка не единственный способ, и для разового исправления это не обязательно должно быть сделано именно через терминал.

Ручная установка — рабочий вариант для одноразовой правки или для систем без доступа к интернету, но у неё есть очевидный недостаток: часы обычного компьютера постепенно «уходят» без внешней синхронизации, и через какое-то время расхождение появится снова.

Автоматическая синхронизация по NTP

Правильное решение на постоянной основе — не подводить время руками, а включить синхронизацию с сервером точного времени по протоколу NTP. В Linux на systemd это делается одной командой:

sudo timedatectl set-ntp true

За фактическую синхронизацию дальше отвечает служба systemd-timesyncd или, в более требовательных к точности сценариях, chronyd. В Windows аналогичную роль играет встроенная служба времени Windows, управляемая через w32tm. После включения автосинхронизации ручная установка времени в терминале почти никогда не требуется — часы держат точность сами.

Особенности Astra Linux и других отечественных дистрибутивов

Astra Linux, как и большинство современных дистрибутивов на базе Linux, использует systemd, поэтому все команды выше — date, timedatectl status, timedatectl set-time, timedatectl set-ntp true — работают в её терминале без каких-либо отличий от «обычного» Ubuntu или Debian. Специфика скорее в контексте использования: в защищённых и изолированных сегментах сети, где часто разворачивают Astra Linux, доступ к внешним NTP-серверам может быть ограничен политикой безопасности, и тогда системное время синхронизируют с локальным сервером точного времени внутри периметра, а не с публичными NTP-пулами в интернете. Адрес такого сервера и порядок настройки в этом случае определяет администратор инфраструктуры, а команды для просмотра и проверки статуса синхронизации в терминале остаются те же самые.

Почему точное время в терминале важно разработчику

Для разработчика системное время — это не абстрактная настройка, а основа, на которой держится множество повседневных инструментов. Расхождение времени на машине разработчика способно испортить куда больше, чем просто вывод команды date:

Здесь же лежит менее очевидная, но практическая связь с учётом рабочего времени: любой инструмент, который автоматически фиксирует, сколько времени ушло на код, встречи или отладку, опирается на те же системные часы. Если хочется понять, чем на самом деле занят рабочий день — сколько реально идёт на написание кода, а сколько на код-ревью, встречи и переключения между задачами, — точность системного времени на машине становится предпосылкой для того, чтобы этим данным можно было доверять. По той же причине разговор про то, сколько разработчик реально пишет код за день, тоже опирается на честные и синхронизированные временные метки, а не на приблизительные ощущения.

DevPace, например, строит временную шкалу рабочего дня — какое приложение было активно и как долго — именно на основе системного времени компьютера; если часы уходят в сторону, точность такой временной шкалы и статистики переключений между задачами снижается вместе с точностью самих часов. Это ещё одна причина держать автоматическую синхронизацию времени включённой, а не выключать её «для порядка» или из соображений приватности — на точность самого трекинга это никак не влияет, а вот на достоверность итоговых цифр влияет напрямую.

Если тема шире — не только точность часов, а то, какие метрики продуктивности разработчика вообще имеют смысл и на какие данные стоит опираться, — этому посвящён отдельный разбор: продуктивность разработчика: какие метрики имеют смысл.

Частые ошибки с временем в терминале

Несколько повторяющихся ситуаций, из-за которых время в терминале выглядит неправильным или превращается в источник более серьёзных проблем:

Вывод

Время в терминале — это не какая-то отдельная сущность, а системное время компьютера, доступное через date, timedatectl status или их аналоги в Windows и PowerShell. Посмотреть его — задача на одну команду; поддерживать его точным на постоянной основе — задача включённой автоматической синхронизации по NTP, а не периодической ручной правки. Для разработчика это не формальность: от точности системных часов зависит корректность истории git, достоверность логов при отладке, а также точность любых автоматических измерений рабочего времени — от простого таймера до полноценной временной шкалы рабочего дня.

Частые вопросы

Как посмотреть время в терминале Linux одной командой?

Достаточно набрать date без аргументов — команда выведет текущую дату, время, день недели и часовой пояс в формате локали системы. Для систем на systemd альтернативой служит timedatectl status, которая дополнительно показывает статус синхронизации по NTP.

Как установить время в терминале Astra Linux?

Так же, как в любом дистрибутиве на systemd: командой sudo timedatectl set-time "ЧЧ:MM:СС" для ручной установки времени или sudo timedatectl set-ntp true, чтобы включить автоматическую синхронизацию. В изолированных сетевых сегментах NTP-сервер может быть внутренним, а не публичным, — адрес указывает администратор инфраструктуры.

Почему время в терминале отличается от времени в системном трее Windows?

Обычно это разные часовые пояса или отключённая синхронизация в одном из окружений: например, время внутри WSL синхронизируется отдельно от времени хоста Windows и может на короткое время отставать после выхода компьютера из сна, пока не пройдёт очередная синхронизация.

Как посмотреть время в терминале через PowerShell?

Командой Get-Date, которая возвращает полный объект даты и времени; вывод можно сразу отформатировать, например Get-Date -Format "HH:mm:ss", если нужно только время без даты.

Что делать, если время в терминале сильно отстаёт или спешит?

Сначала проверить, включена ли автоматическая синхронизация (timedatectl status в Linux), и включить её, если она выключена. Если синхронизация включена, но время всё равно расходится, стоит проверить доступность NTP-сервера из сети — расхождение почти всегда означает, что синхронизация технически не работает, а не что она не помогает в принципе.

Меня интересовало время терминала MetaTrader 4 — почему статья не об этом?

Потому что это два разных значения слова «терминал»: терминал MetaTrader 4 показывает время сервера торговой платформы и настраивается внутри самой программы, а не через командную строку операционной системы, о которой рассказано в этой статье. За настройками времени в MT4 стоит обращаться к документации платформы или брокера.

Как временно посмотреть время в другом часовом поясе без изменения настроек системы?

Через переменную окружения TZ перед командой, например TZ="Europe/Moscow" date — это выведет текущее время в указанном часовом поясе, не трогая часовой пояс, установленный в системе.

Смотрите также