Я могу использовать date/t
и time/t
чтобы получить дату и время, но они не отображаются рядом друг с другом. Я хотел заставить это сделать это и показывать это так:
Current Date & Time
-------------------
11/27/2013 10:43:05 AM
Я могу использовать date/t
и time/t
чтобы получить дату и время, но они не отображаются рядом друг с другом. Я хотел заставить это сделать это и показывать это так:
Current Date & Time
-------------------
11/27/2013 10:43:05 AM
Попробуйте следующее (PowerShell):
Get-Date -Format G
27.11.2013 17:10:23
Формат определяется региональными настройками системы, поэтому для меня это то, что я получаю, но если вы хотите использовать региональный формат даты/времени, он должен отображаться так, как вы хотите.
(Get-Date).ToString()
вероятно, также будет работать.
ОБНОВИТЬ:
"Date and time is: $((Get-Date).ToString())"
В PowerShell это тривиально:
(Get-Date).ToString('MM/dd/yyyy hh:mm:ss tt')
В cmd
он несколько сложен:
rem Get the date and time in a locale-agnostic way
for /f %%x in ('wmic path win32_localtime get /format:list ^| findstr "="') do set %%x
rem Leading zeroes for everything that could be only one digit
set Month=0%Month%
set Day=0%Day%
rem Hours need special attention if one wants 12-hour time (who wants that?)
if %Hour% GEQ 12 (set AMPM=PM) else (set AMPM=AM)
set /a Hour=Hour %% 12
if %Hour%==0 (set Hour=12)
set Hour=0%Hour%
set Minute=0%Minute%
set Second=0%Second%
set Month=%Month:~-2%
set Day=%Day:~-2%
set Hour=%Hour:~-2%
set Minute=%Minute:~-2%
set Second=%Second:~-2%
rem Now you can just create your output string
echo %Month%/%Day%/%Year% %Hour%:%Minute%:%Second% %AMPM%
Обратите внимание, что большое количество кода направлено на поддержку этого странного формата даты и времени. И ведущие нули при необходимости. Также обратите внимание, что этот код работает независимо от региональных и языковых настроек пользователя. Это не зависит от формата даты пользователя, например (для меня это ISO 8601).
Я не волшебник с cmd.exe, но это работает. Там может быть более простой способ!
@echo off
setlocal enableextensions
for /f "tokens=*" %%a in ('date /t') do (
set d=%%a
)
for /f "tokens=*" %%a in ('time /t') do (
set t=%%a
)
REM Add those puppies together
set "dt=%d% %t%"
echo %dt%
27/11/2013 16:04
Для CMD, почему не просто:
C:\temp\test>ECHO %DATE% %TIME%
Mon 06/24/2019 18:00:17.63
Если вы хотите зачеркнуть День в начале, здесь приведена сжатая версия того, что сделал Джои, используя подстроки.
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set dt=%%a
set timestamp=%dt:~0,4%/%dt:~4,2%/%dt:~6,2% %dt:~8,2%:%dt:~10,2%:%dt:~12,2%
ECHO %timestamp%
2019/06/24 17:56:43
2019/06/24 17:56:43