关于bat中日期时间字符串的格式化

时间:2020-12-01 05:45:32

在其他编程语言中,要实现日期时间字符串的格式化,包括时间计算,都是比较简单的

但在bat或者说cmd、dos中要实现这些功能、还是有一定难度的

首先,windows的cmd中可以使用%date%表示日期,%time%表示时间,但都会依赖于系统本身设置的日期时间的格式

即在不同的windows主机中%date%与%time%的输出值都可能不一样!所以如果处理日期与时间,都最好要在主机上测试一下

笔者目前最常用的是如下方式格式化日期与时间的输出:

@echo off
for /f "tokens=1-3 delims=-/ " %%1 in ("%date%") do set ddd=%%1%%2%%3
for /f "tokens=1-4 delims=.: " %%1 in ("%time%") do set tttt=%%1%%2%%3%%4
Set DT=%ddd%%tttt% echo date %ddd%
echo time %tttt%
echo %DT%
@echo on

这样在笔者PC上执行,分别输出:20200912  、   17332783  和  2020091217332783    (其中2783代表27.83秒),也许这就是最合适的格式

但如果到到另一台windows服务器上执行,即输出:Sat0912  、17332783 和Sat091217332783

也还有其他服务器执行,输出样式类似为:09122020、1000389  和 091220201000389 (可以看出小时位不足2位,格式上就不会前面的0)

因此在bat脚本中如果要使用到%date%和%time%,需要谨慎,最好是先到目标主机中测试一下的!否则可以结果与自己预想的不一致!

尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/13657862.html