如何获得与语言环境无关的Windows批处理日期戳?

时间:2019-05-16 09:45:51

标签: windows date batch-file cmd

在Windows批处理文件中,是否可以某种位置无关的形式获取日期文本,以字符串形式获取与位置无关的日期戳?为了使问题更清楚...在捷克语的Windows中,所需的代码如下:

d:\>date /t
čt 16. 05. 2019

d:\>echo %DATE:~-4%%DATE:~-8,2%%DATE:~-12,2%
20190516

但是,在英文Windows中,出于明显的原因,相同的代码会返回错误的结果:

d:\>date /t
Thu 05/16/2019

d:\>echo %DATE:~-4%%DATE:~-8,2%%DATE:~-12,2%
2019/1u

如果代码已针对英语Windows进行了调整,则它在捷克语环境中不起作用。应该如何实施?

1 个答案:

答案 0 :(得分:1)

这是一种您可以操纵wmic os get LocalDateTime /VALUE的输出的方法

@echo off
for /f "tokens=1,2 delims==" %%i in ('wmic os get LocalDateTime /VALUE ^>nul 2^>^&1') do (
    if ".%%i."==".LocalDateTime." set mydate=%%j
)
set mydate=%mydate:~0,4%/%mydate:~4,2%/%mydate:~6,2% %mydate:~8,2%:%mydate:~10,2%:%mydate:~12,6%
echo %mydate%

,并且您似乎希望使用YYYYMMDD并不包含时间的特定格式:

@echo off
for /f "tokens=1,2 delims==" %%i in ('wmic os get LocalDateTime /VALUE ^>nul 2^>^&1') do (
    if ".%%i."==".LocalDateTime." set mydate=%%j
)
set mydate=%mydate:~0,4%%mydate:~4,2%%mydate:~6,2%
echo %mydate%