【bat】バッチファイルで日付や時間を好みの形式に変換(例:YYYY-MM-DD)

バッチファイル

今日の日付や現在の時刻でフォルダを作成したい場合など、日付や時刻を任意の形式に変換する方法のサンプルです。

サンプルコード

@echo off

echo 日時をそのままのフォーマットで表示
echo %DATE% %TIME%
echo.

rem 年月日の取得
set today=%DATE%
set year=%today:~0,4%
set month=%today:~5,2%
set day=%today:~8,2%

rem 時分秒とセンチ秒(1/100秒)の取得
set nowtime=%TIME%
set hours=%nowtime:~0,2%
set minutes=%nowtime:~3,2%
set seconds=%nowtime:~6,2%
set centiseconds=%nowtime:~9,2%

rem 時が一桁の場合に先頭の空白をゼロに変換
if "%hours:~0,1%"==" " set hours=0%hours:~1,1%

echo 【使用例1】日付をYYYY-MM-DD形式で表示
echo %year%-%month%-%day%
echo.

echo 【使用例2】時間をHH-MM-SS-CC形式で表示
echo %hours%-%minutes%-%seconds%-%centiseconds%
echo.

pause

実行結果
日時をそのまま表示している部分と、後の時間表示部分ではセンチ秒(1/100秒)がずれることがあります。これは、環境変数%TIME%参照するタイミングの違いによるものです。

日時をそのままのフォーマットで表示
2024/02/11 17:45:58.58

【使用例1】日付をYYYY-MM-DD形式で表示
2024-02-11

【使用例2】時間をHH-MM-SS-CC形式で表示
17-45-58-60

続行するには何かキーを押してください . . .

タイトルとURLをコピーしました