在 Linux 中,我date +"%Y%m%d%H%M%S"
可以打印日期和时间标签。如何在 Windows 中实现相同的效果?
我发现date /t
返回25/02/2016
。但我希望将其格式化为如下格式20160225155958
。
答案1
答案2
我希望它的格式像 20160225155958
运行后的输出格式如下:
date +"%Y%m%d%H%M%S"
在 Linux 上。
正如另一个答案所指出的那样,使用%date%
提供解决方案取决于操作系统的区域设置、区域和语言设置。
wmic
另一方面,使用与操作系统区域设置、语言或用户选择的日期格式(控制面板/区域)无关。
以下批处理文件用于wmic
以 OP 指定的格式检索日期和(本地)时间,因此不会遭受使用 的解决方案的缺点%date%
。
获取日期.cmd:
@echo off
setlocal
rem use findstr to strip blank lines from wmic output
for /f "usebackq skip=1 tokens=1-6" %%g in (`wmic Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year ^| findstr /r /v "^$"`) do (
set _day=00%%g
set _hours=00%%h
set _minutes=00%%i
set _month=00%%j
set _seconds=00%%k
set _year=%%l
)
rem pad with leading zeros
set _month=%_month:~-2%
set _day=%_day:~-2%
set _hh=%_hours:~-2%
set _mm=%_minutes:~-2%
set _ss=%_seconds:~-2%
set _date=%_year%%_month%%_day%%_hh%%_mm%%_ss%
echo %_date%
endlocal
上述批处理文件是获取日期
输出:
F:\test>date /t && time /t
25/02/2016
16:49
F:\test>getdate
20160225164929
F:\test>
Cywin 比较:
DavidPostill@Hal /f/test
$ date +"%Y%m%d%H%M%S"
20160225164938
进一步阅读
- Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
- 对于/f- 循环命令以执行另一个命令的结果。
- 获取日期- 显示独立于操作系统区域设置、语言或用户选择的日期格式(控制面板/区域)的日期和时间。
- 变量- 提取变量的一部分(子字符串)。
- 西米克- Windows 管理规范命令。