Как я могу получить текущую системную дату и время с помощью командной строки?

Я хотел бы получить текущую системную дату и время с помощью командной строки.
Как я заставляю дату быть в определенном формате, MM-DD-YYYY HH:MIN AM/PM?

2
задан 26.03.2014, 19:48

4 ответа

Очень легкий получить дату и время, на самом деле:

set Year=
for /f "skip=2" %%x in ('wmic Path Win32_LocalTime get Year^,Month^,Day^,Hour^,Minute^,Second /Format:List') do (
  if not defined Year set %%x
)

Я принимаю местное время здесь. Если Вы нуждаетесь в UTC, адаптируете его соответственно.

Ваш формат делает вещи более сложными. Извинения, если я получаю что-то не так здесь, я не знаком с,/пополудни форматы.

if %Hour% LSS 12 (
  set ampm=AM
  if %Hour%==0 set Hour=12
) else (
  set ampm=PM
  set /a Hour-=12
)

Нам нужны некоторые, продвижение обнуляет:

if %Month% LSS 10 set Month=0%Month%
if %Day% LSS 10 set Day=0%Day%
if %Minute% LSS 10 set Minute=0%Minute%
if %Hour% LSS 10 set Hour=0%Hour%

Затем пора собрать части:

set Timestamp=%Month%-%Day%-%Year% %Hour%:%Minute% %ampm%

(Просто случайное примечание: С какой стати Вы хотели бы тот формат метки времени?)

4
ответ дан 08.12.2019, 04:46

Инструменты командной строки Unix часто более мощны, чем их дубликаты окон.

Но даже с Windows можно использовать некоторые портированные инструменты командной строки. Например, бесплатный пакет UnxTools:

http://sourceforge.net/projects/unxutils/

Вот ссылка на загрузку:

http://sourceforge.net/projects/unxutils/files/unxutils/current/UnxUtils.zip/download

Просто возьмите date.exe из архива (это находится в подпапке usr\local\wbin), и поместите его в папку, которую Вы также имеете в своей среде ПУТИ.

Затем можно назвать date.exe с параметрами как это:

date.exe +"%m-%d-%y %l:%M %p"

Если Вы хотите видеть весь возможный форматировать шаблоны, просто звонят

date.exe --help

Заботьтесь для включения ".exe" расширения. Если Вы оставите его затем, то окна назовут внутреннюю команду даты.

3
ответ дан 08.12.2019, 04:46
:: construct date and time strings
:: "MM-DD-YYYY HH:MIN AM/PM"
for /f "tokens=1,2" %%u in ('date /t') do set d=%%v 
for /f "tokens=1" %%u in ('time /t') do set t=%%u 
for /f "tokens=2" %%u in ('time /t') do set a=%%u
if "%t:~1,1%"==":" set t=0%t% 
set datestr=%d:~0,2%-%d:~3,2%-%d:~6,4% %t:~0,2%:%t:~3,2% %a%

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

Используйте "%datestr %" для получения строки даты, т.е.:

повторите %datestr %

3
ответ дан 08.12.2019, 04:46

Посмотрите вопрос о Переполнении стека, Как получить УНИВЕРСАЛЬНУЮ метку времени пакетного файла Windows для примера того, как получить время даты, устанавливая, который независим от региональных настроек. Назвать сценарий,

c:\> cscript //nologo myscript.vbs 

Используйте a for цикл для получения вывода в случае необходимости.

0
ответ дан 08.12.2019, 04:46

Теги

Похожие вопросы