1. 程式人生 > 實用技巧 >關於bat程式設計中日期時間的格式化

關於bat程式設計中日期時間的格式化

在其他程式語言中,要實現日期時間字串的格式化,包括時間計算,都是比較簡單的

但在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%,需要謹慎,最好是先到目標主機中測試一下的!否則可以結果與自己預想的不一致!