批处理文件日期格式化:如何将YYYYMMDD转为YYMMDD格式?
如何修改批处理代码获取YYMMDD格式日期
嘿,这事儿不难,咱们直接针对你的代码调整就行~
你原来的代码是通过date /t获取日期,拆分后拼接成YYYYMMDD格式:
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c%%a%%b)
这里的%%c对应的是完整的四位年份(比如你的例子里是2018),要得到两位年份,只需要对年份部分做字符串截取就好,有两种简单的方式:
方法一:直接在赋值时截取年份后两位
把赋值语句里的%%c改成%%c:~2,2,这样就只取年份的最后两位字符:
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c:~2,2%%a%%b)
执行后,mydate就会变成180416(YYMMDD格式)。
方法二:先获取完整日期再截取后六位
如果不想改动原有的拆分逻辑,也可以先拿到YYYYMMDD格式的日期,再通过变量截取保留后六位:
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c%%a%%b) set mydate=%mydate:~2%
第一行先得到20180416,第二行的%mydate:~2%表示从变量的第3个字符(索引从0开始)截取到末尾,结果就是180416。
小提醒
要注意date /t的输出格式和系统的区域设置有关,你的原代码能正常输出YYYYMMDD,说明当前系统的日期拆分逻辑是匹配的,这两种修改方式都能直接生效。
内容的提问来源于stack exchange,提问作者Lalatendu Bag
相关产品推荐
相关产品推荐

