DATE — отображение и изменение даты в CMD

Команда DATE показывает текущую дату и позволяет изменить её прямо из командной строки Windows. Поддерживает тихий режим и использование в скриптах.

Команда DATE отображает текущую дату и позволяет изменить её прямо из командной строки Windows. Помимо интерактивного режима, она поддерживает прямую передачу новой даты аргументом — это делает её удобной в автоматизированных скриптах.

Синтаксис команды DATE

DATE [/T | дата]
  • /T — только вывести текущую дату без запроса на изменение
  • дата — новая дата в формате, зависящем от региональных настроек системы (обычно дд.мм.гггг для русской локали или мм/дд/гггг для английской)

Без аргументов DATE выводит текущую дату и запрашивает новую в интерактивном режиме. Нажмите Enter без ввода, чтобы оставить дату без изменений.

Ключи и параметры

Ключ / параметр Описание Пример
/T Вывести текущую дату и выйти без запроса изменения DATE /T
дата Установить дату напрямую (без интерактивного запроса). Формат зависит от локали DATE 25.12.2024
(без аргументов) Вывести дату и перейти в интерактивный режим ввода новой даты DATE
/? Вывод встроенной справки DATE /?

Примеры использования

Просмотр текущей даты без изменений

Самый безопасный способ узнать текущую дату в CMD без риска случайно её изменить.

DATE /T

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

Получить дату в переменную скрипта

В bat-скриптах дату часто нужно сохранить в переменную для формирования имени файла резервной копии или лога.

FOR /F "tokens=1-3 delims=. " %%a IN ('DATE /T') DO (
  SET dd=%%a
  SET mm=%%b
  SET yyyy=%%c
)
echo Дата: %yyyy%-%mm%-%dd%

Переменные %dd%, %mm%, %yyyy% будут содержать компоненты даты. Символ-разделитель зависит от региональных настроек: в русской Windows это точка (.), в английской — косая черта (/).

Изменение даты из командной строки

Требуется при настройке серверов или при восстановлении системы с неверной датой.

DATE 15.08.2024

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

Изменение даты в интерактивном режиме

Когда нужно ввести дату в диалоге — например, чтобы увидеть текущий формат перед вводом.

DATE

CMD покажет текущую дату и предложит ввести новую. Нажмите Enter без ввода, чтобы оставить дату неизменной и выйти.

Добавление даты в имя лог-файла

Стандартный приём в скриптах резервного копирования — добавить дату к имени файла.

@echo off
FOR /F "tokens=1-3 delims=." %%a IN ('DATE /T') DO SET fdate=%%c-%%b-%%a
echo Backup started > C:\Logs\backup_%fdate%.log

Результат: файл backup_2024-08-15.log. Формат гггг-мм-дд удобен для сортировки по имени.

Быстрая проверка даты при диагностике

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

DATE /T && TIME /T

Выведет текущие дату и время одной строкой — быстрая проверка перед запуском w32tm /resync.

Частые ошибки и решения

Ошибка / симптом Причина Решение
«Введён неверный формат даты» Формат даты не совпадает с региональными настройками Windows Проверьте формат командой DATE без аргументов — он будет показан в подсказке. Используйте тот же разделитель и порядок компонентов
«Отказано в доступе» при изменении даты CMD запущена без прав администратора Запустите CMD от имени администратора: ПКМ → «Запуск от имени администратора»
Дата в скрипте считывается неверно Разделитель в дате зависит от локали: точка, косая черта или дефис Укажите правильный разделитель в конструкции FOR /F "delims=." или используйте wmic os get LocalDateTime для независимого от локали формата
DATE /T выводит дату с лишними пробелами В русской Windows перед датой стоит день недели (например «Чт 15.08.2024») Используйте FOR /F "tokens=2" для извлечения только числовой части даты
После изменения даты она сбрасывается при перезагрузке Аппаратные часы RTC настроены неверно или не синхронизируются с Windows Воспользуйтесь w32tm /resync для синхронизации с NTP-сервером или проверьте батарейку BIOS

Когда применять, а когда нет

Команда DATE полезна в bat-скриптах для чтения текущей даты и формирования имён файлов, а также для разовой ручной корректировки даты на изолированных системах без доступа к NTP. Изменение даты требует прав администратора и применяется немедленно.

Не используйте DATE для постоянной синхронизации времени — для этого есть служба W32Time и команда w32tm /resync. Если дата нужна в точном и независимом от локали формате, в скриптах предпочтительнее PowerShell: Get-Date -Format "yyyy-MM-dd" возвращает дату без зависимости от региональных настроек и не требует разбора строки.

FAQ

Как узнать текущую дату в CMD без изменений?

Выполните DATE /T. Ключ /T выводит дату и сразу завершает команду без запроса на ввод новой даты.

В каком формате вводить дату для команды DATE?

Формат зависит от региональных настроек. В русской Windows обычно дд.мм.гггг (например 15.08.2024). Введите DATE без аргументов — в строке подсказки будет показан актуальный формат для вашей системы.

Нужны ли права администратора для изменения даты?

Да. Изменение системной даты — привилегированная операция. CMD должна быть запущена от имени администратора, иначе команда завершится ошибкой «Отказано в доступе».

Как использовать дату в имени файла в bat-скрипте?

Используйте конструкцию FOR /F для разбора вывода DATE /T. Пример: FOR /F "tokens=1-3 delims=." %%a IN ('DATE /T') DO SET fdate=%%c-%%b-%%a — результат в переменной %fdate% в формате гггг-мм-дд.

DATE изменяет дату только в Windows или в BIOS тоже?

Windows синхронизирует изменения и в системных часах ОС, и в аппаратных часах RTC (BIOS). После перезагрузки дата сохранится, если батарейка BIOS исправна.

Есть ли аналог DATE в PowerShell?

Да. Для чтения: Get-Date или Get-Date -Format "yyyy-MM-dd". Для изменения: Set-Date -Date "2024-08-15". PowerShell не зависит от региональных настроек и возвращает объект DateTime, который удобнее парсить в скриптах.

Оцените статью
( Пока оценок нет )
MW10
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.

  1. Сергей

    Не работает: DATE /D

    Ответить