批处理: 获得系统日期和时间, 并格式化显示

 

系统日期由以下参数获得:
%date%

系统时间则由以下参数获得:
%time%

看一下这个
echo %date%

我们在Windows XP中输入以下命令:,得到的结果类似以下(输出结果可能因系统日期、时间格式而异):

C:\Documents and Settings\Simon>echo %date%
2008-09-09 星期二
或者
C:\Documents and Settings\Simon>echo %date%
TUE 09/09/2008

格式化成我们所需要的格式:
%date:~x,y%
冒号后的~x,y表示截取date返回值中第x位后的y个字符。

例如:echo %date:~5,5%,则会得到以下结果(截取到第5位后的5个字符,也就是只取月和日)
C:\Documents and Settings\Simon>echo %date:~5,5%
09-09

如果我们需要加入自订的分隔符,比如想要YYYY--MM--DD的格式,只需要分别取出YYYY, MM, DD再连接起来即可:
C:\Documents and Settings\Simon>echo %date:~0,4%--%date:~5,2%--%date:~8,2%
2008--09--09

对于windows的其他系统参数,同理可以重整出需要的格式。例如 %time%

但是有一个问题, 时间中的小时, 不足两位是怎么补0(系统中不足两位时, 是补空格的, 我们判断到时空格, 用0来替换就可以了)
看下面的:
@echo off

set hour=%time:~,2%
if "%time:~,1%"==" " set hour=0%time:~1,1%

echo %date:~0,4%%date:~5,2%%date:~8,2%%hour%%time:~3,2%%time:~6,2%
pause

你可能感兴趣的:(批处理)