Windows cmd date формат

This post explains how to get current date and time from command prompt or in a batch file.

How to get date and time in a batch file

Below is a sample batch script which gets current date and time
Datetime.cmd

@echo off

for /F "tokens=2" %%i in ('date /t') do set mydate=%%i
set mytime=%time%
echo Current time is %mydate%:%mytime%

When we run the above batch file

C:\>datetime.cmd
Current time is 08/12/2015:22:57:24.62
C:\>

Get date from command line

To print today’s date on the command prompt, we can run date /t.

c:\>date /t
Thu 05/14/2015
c:\>

Just running date without any arguments prints the current date and then prompts to enter a new date if the user wants to reset it.

c:\>date
The current date is: Sat 05/16/2015
Enter the new date: (mm-dd-yy)
c:\>

In addition to date command, we also have an environment variable using which we can find today’s date.

c:\>echo %date%
Sun 05/17/2015

How to get only the date in MM/DD/YYYY format?

You may want to exclude the day (like ‘Sun’ in the above example) and print only the date in MM/DD/YYYY format. The below command works for the same.

for /F "tokens=2" %i in ('date /t') do echo %i

Example:

c:\>for /F "tokens=2" %i in ('date /t') do echo %i
05/14/2015
c:\>

Get time from command prompt

Similar to date command, we have the command time which lets us find the current system time. Some examples below.

c:\>time /t
11:17 PM

c:\>time
The current time is: 23:17:18.57
Enter the new time:
c:\>

As you can see, the command prints the time in different formats. It prints in 12 hour format when /t is added and in 24 hours format without /t

We can also get the current time from environment variables.

c:\>echo %time%
23:23:51.62
c:\>

Get date and time

c:\>echo  %date%-%time%
Sun 05/17/2015-23:21:03.34

Иногда требуется сформировать переменную даты и времени в cmd / bat скриптах windows так, как нужно нам, а не так, как нам отдаёт операционная система.

Например чтоб добавить эти данные в log файл, для фиксации времени или даты события, создать файл с именем, в котором должны фигурировать данные даты или времени (день, месяц, год, час, минуты, скунды, миллисекунды.) Да мало-ли, какие у нас задачи… Подключаем нашу фантазию :)

В следующем примере мы видим разбиение переменных по нужным нам шаблонам.

h- час 2 знака (то есть час будет выдаваться в следующем виде — 01, 02, …, 09, … , 12, … 24)

m — минуты 2 знака

s — секунжы 2 знака

ms — миллисекунды 2 знака, почему-то от 0 до 99

dd — день 2 знака

mm — месяц 2 знака

yyyy — год 4 знака

Пример использования переменных %DATE% и %TIME% в скриптах cmd / bat Windows:

@echo off
set h=%TIME:~0,2%
set m=%TIME:~3,2%
set s=%TIME:~6,2%
set ms=%TIME:~9,2%
set curtime=%h%:%m%:%s%:%ms%
set dd=%DATE:~0,2%
set mm=%DATE:~3,2%
set yyyy=%DATE:~6,4%
set curdate=%dd%-%mm%-%yyyy%
set curdatetime=%curdate% %curtime%

echo Текущее время — %curdatetime%

В некоторых версиях Windows формат выдачи даты и времени другой, поэтому данный скрипт может работать совсем так как нам нужно.

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

%DATE:~3,2%

Первая цифра после :~ — это номер символа, с которого мы начинаем брать значение, вторая цифра это сколько символов захватывать.

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

Мне известны следующие переменные, значения которых мы можем получить:
 

Имя

ALLUSERSPROFILE Возвращает размещение профиля «All Users».
APPDATA Возвращает используемое по умолчанию размещение данных приложений.
CD Указывает путь текущей папки. Идентична команде CD без аргументов.
CMDCMDLINE точная команда использованная для запуска текущего cmd.exe.
CMDEXTVERSION версия текущего Command Processor Extensions.
CommonProgramFiles Расположение каталога «Common Files» (обычно %ProgramFiles%\Common Files)
COMPUTERNAME имя компьютера
COMSPEC путь до исполняемого файла shell
DATE Возвращает текущую дату. Использует тот же формат, что и команда date /t. Создается командой Cmd.exe.
ERRORLEVEL Возвращает код ошибки последней использовавшейся команды. Значение, не равное нулю, обычно указывает на наличие ошибки.
HOMEDRIVE Возвращает имя диска локальной рабочей станции, связанного с основным каталогом пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».
HOMEPATH Возвращает полный путь к основному каталогу пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».
HOMESHARE Возвращает сетевой путь к общему основному каталогу пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».
LOGONSERVER имя контроллера домена, использовавшегося для авторизации текущего пользователя
NUMBER_OF_PROCESSORS количество процессоров в системе
OS название операционной системы. Windows XP и Windows 2000 отображаются как Windows_NT.
PATH Указывает путь поиска для исполняемых файлов.
PATHEXT Возвращает список расширений файлов, которые рассматриваются операционной системой как исполняемые.
PROCESSOR_ARCHITECTURE архитектура процессора
PROCESSOR_IDENTIFIER описание процессора
PROCESSOR_LEVEL номер модели процессора
PROCESSOR_REVISION ревизия процессора
PROGRAMFILES путь к папке Program Files
PROMPT Возвращает параметры командной строки для текущего интерпретатора. Создается командой Cmd.exe.
RANDOM случайное десятичное число от 0 до 32767. Генерируется Cmd.exe
SESSIONNAME Тип сессии. Значение по умолчанию «Console»
SYSTEMDRIVE диск на котором расположена корневая папка Windows
SYSTEMROOT путь к корневой папке Windows
TEMP or TMP Возвращает временные папки, по умолчанию используемые приложениями, которые доступны пользователям, выполнившим вход в систему. Некоторые приложения требуют переменную TEMP, другие — переменную TMP. Потенциально TEMP и TMP могут указывать на разные каталоги, но обычно — совпадают.
TIME Возвращает текущее время. Использует тот же формат, что и команда time /t. Создается командой Cmd.exe.
USERDOMAIN имя домена, которому принадлежит текущий пользователь
USERNAME имя текущего пользователя
USERPROFILE путь к профайлу текущего пользователя
WINDIR директория в которую установлена Windows

Описание

Overview

The DATE command in Windows Command Prompt (CMD) allows users to display or set the system date. While primarily used for managing and modifying the date settings on a computer, this command can be essential for scripts that depend on date-specific processes or for administrative tasks requiring date verification or updates.

Syntax

The basic syntax for the DATE command is:

DATE [/T | date]
  • DATE with no parameters will display the current date and prompt the user to enter a new date (if permissions allow).
  • /T displays the current date without prompting for a new one.

When setting the date, the format you need to use can depend on your system locale settings, typically MM-DD-YYYY in the United States.

Options/Flags

  • /T : Displays the current date without prompting for a new date. Useful for scripts where you need to echo the current date without making changes.

By default, if you use DATE with no flags, it will prompt you to enter a new date.

Examples

  1. Display the current date:

    DATE /T
    

    Output might be Tue 05/23/2023 depending on system settings.

  2. Set a new date:

    DATE
    

    This will prompt the user to enter a new date like Enter new date (mm-dd-yy): where the user needs to input the date as required.

Common Issues

  • Permission Errors: When trying to set the date, you might encounter permission errors if not executed with administrative privileges. Run CMD as administrator to resolve.
  • Format Confusion: Users often make mistakes related to the date format, especially in regions with different date formats (e.g., DD-MM-YYYY vs. MM-DD-YYYY). Always check your system’s locale settings.

Integration

The DATE command can be integrated with other commands for automated scripts and logging. For example, creating a file with a date stamp in its name:

ECHO Hello, World! > Logfile_%date:/=%time::=s%.txt

This command sequence takes the current date and time, removes undesirable characters, and uses them in a filename, useful for time-stamped logging.

  • TIME : Similar to DATE, but for displaying or setting the system time.
  • TIMESTAMP : Used in scripts for logging or file creation with a timestamp.
  • More complex date manipulations may require PowerShell or external tools/scripts.

For further reading and more detailed information, refer to the Microsoft official documentation for CMD at: Windows Command Line Documentation.

Здравствуйте,野心勃勃ые программисты! Сегодня мы окунемся в fascinирующий мир дат и времени в скриптах Batch. Как ваш доброжелательный сосед-преподаватель информатики, я рад помочь вам в этом путешествии. Не волнуйтесь, если вы никогда раньше не писали ни строчки кода — мы начнем с азов и постепенно поднимемся. Так что достаньте свои виртуальные блокноты, и давайте начнем!

Batch Script - DATE & TIME

Команда DATE

Команда DATE в скриптах Batch resembles ваш цифровой календарь. Он позволяет вам viewed или изменить текущую дату на вашем компьютере. Давайте посмотрим, как еe использовать!

Просмотр текущей даты

Чтобы viewed текущую дату, просто введите:

DATE

Когда вы выполните эту команду, вы увидите что-то вроде:

Текущая дата: Пн 17.04.2023
Введите новую дату: (мм-дд-гг)

Вот интересный факт: однажды у меня был студент, который использовал эту команду, чтобы проверить, день ли это его рождения. Он был так взволнован, когда это действительно оказалось так!

Изменение даты

Чтобы изменить дату, вы можете ввести новую дату, когда вас спросят. Например:

DATE 18-04-2023

Это изменит дату на 18 апреля 2023 года. Но будьте осторожны! Изменение системной даты может повлиять на различные приложения и процессы.

Использование DATE в скриптах

Теперь давайте посмотрим, как мы можем использовать команду DATE в наших скриптах. Вот простой пример:

@echo off
echo Сегодняшняя дата:
date /t
pause

В этом скрипте:

  1. @echo off предотвращает отображение команд.
  2. echo Сегодняшняя дата: выводит сообщение.
  3. date /t отображает текущую дату без запроса новой даты.
  4. pause оставляет окно открытым, чтобы вы могли увидеть результат.

Команда TIME

Как и DATE, команда TIME позволяет viewed или изменить текущее время на вашем компьютере. Это как если бы у вас был цифровой будильник у вас под рукой!

Просмотр текущего времени

Чтобы viewed текущее время, просто введите:

TIME

Вы увидите что-то вроде:

Текущее время: 14:30:45.52
Введите новое время:

Изменение времени

Чтобы изменить время, введите новое время, когда вас спросят:

TIME 15:45

Это изменит время на 3:45 PM.

Использование TIME в скриптах

Давайте создадим скрипт, который отображает и дату, и время:

@echo off
echo Текущая дата и время:
date /t
time /t
pause

Этот скрипт покажет вам текущую дату и время без запроса изменений.

Дата в формате Год-Месяц-День

Иногда вам может потребоваться displayed дату в определенном формате, например Год-Месяц-День. Скрипты Batch не имеют встроенной команды для этого, но мы можем создать собственное решение с использованием переменных окружения.

Вот скрипт, который displayed дату в формате ГГГГ-ММ-ДД:

@echo off
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /value') do set datetime=%%I
set year=%datetime:~0,4%
set month=%datetime:~4,2%
set day=%datetime:~6,2%
echo Текущая дата: %year%-%month%-%day%
pause

Давайте разберем это:

  1. Цикл for выполняет команду wmic, чтобы получить локальное время и дату.
  2. Мы извлекаем информацию о дате в переменные: year, month и day.
  3. Наконец, мы displayed дату в desired формате.

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

Полезные методы даты и времени

Вот таблица некоторых полезных методов даты и времени в скриптах Batch:

Метод Описание Пример
DATE /T Отображает текущую дату DATE /T
TIME /T Отображает текущее время TIME /T
%DATE% Переменная окружения для текущей даты echo %DATE%
%TIME% Переменная окружения для текущего времени echo %TIME%
wmic os get localdatetime Получает дату и время в формате ГГГГММДДЧЧММСС wmic os get localdatetime

Помните, практика делает perfect! Попробуйте написать скрипты, которые используют эти команды по-разному. Может быть, создайте цифровой будильник или скрипт, который calculates, сколько дней до вашего следующего дня рождения.

В заключение, работа с датами и временем в скриптах Batch открывает мир возможностей. От простых отображений дат до сложных вычислений времени, эти инструменты могут быть incredibly полезны в вашем пути программирования. Продолжайте экспериментировать и не бойтесь ошибаться — так мы учимся!

Счастливого программирования, будущие программисты!

Credits: Image by storyset

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

Запускаем командную строку («Win+R» — «cmd») и набираем «time«, после пробела ставим желаемую дату в формате ЧЧ:MM:СС, жмем Enter и смотрим в трей.

Пример: 

time 15:38:00

Аналогичные действия проделываем и с датой, вот только вместо time набираем — «date» и саму дату в формате ЧЧ.ММ.ГГГГ:

date 14.04.2016

Получить список часовых поясов 

TZUTIL /l

Получить информацию о часовом поясе на данном ПК

TZUTIL /g

Установить часовой пояс

TZUTIL /s "Yakutsk Standard Time"

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Открыть параметры windows 10 через диспетчер задач
  • Windows 7 bluetooth gamepad
  • Как посмотреть характеристики видеокарты на windows 10 на ноутбуке
  • Как отключить проверку активации windows 10
  • Asus x540ya драйвера windows 7 x64