获取同一行的日期和时间

时间:2013-11-27 15:47:20

标签: powershell command-line

我可以使用date /ttime /t来获取日期和时间,但不会将它显示在彼此旁边。我想让它做到这一点并显示如下:

Current Date & Time
-------------------

11/27/2013 10:43:05 AM

5 个答案:

答案 0 :(得分:28)

尝试以下(PowerShell):

Get-Date -Format G

27.11.2013 17:10:23

格式是根据系统的区域设置定义的,所以对我来说这就是我所得到的,但是如果您想要的是区域日期/时间格式,它应该显示为您想要的。

(Get-Date).ToString()

可能也会奏效。

更新:

"Date and time is: $((Get-Date).ToString())"

答案 1 :(得分:17)

在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)。

答案 2 :(得分:1)

我不是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

答案 3 :(得分:0)

对于CMD,为什么不那么简单:

C:\temp\test>ECHO %DATE% %TIME%
Mon 06/24/2019 18:00:17.63

如果您想在一开始就删除Day,这是Joey使用子字符串的精简版本。

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

答案 4 :(得分:0)

您也可以在powershell中使用.NET DateTime:

$ pytest --reruns 5 --only-rerun AssertionError