バッチファイルで日付や時間を好みの形式に変換(例: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をコピーしました