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

 

尊重別人的勞動成果 轉載請務必注明出處:https://www.cnblogs.com/5201351/p/13657862.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM