目次
- 日付と時刻を取得する(変数「date」と「time」)
- パソコンの日付と時刻を設定する(「date」と「time」コマンド)
- 利用しやすい日付と時刻の表示になおす(例:2017/09/22 → 20170922)
日付と時刻を取得する(変数「date」と「time」)
日付を取得するには「date」、時刻を取得するには「time」を使います。「date」と「time」は変数であり、既に日付と時刻が格納されています。
コマンドプロンプト上で、
1 |
echo %date% |
と打ち込むと、現在の「年/月/日」が表示されます。
1 |
echo %time% |
と打ち込むと、現在の時刻「時:分:秒.コンマ秒」を取得できます。
以下、実行結果です。
日付と時刻を設定する(「date」と「time」コマンド)
パソコンに内臓された時計の日付と時刻を変更したい場合は「date」、「time」コマンドを使用します。今度は、変数としてではなく、「date」や「time」をコマンドとして実行します。
コマンドプロンプト上で、
1 |
date |
を実行すると、現在設定されている日付が表示され、その下に新規に設定したい日付の入力を求められます。
入力は
[年]-[月]-[日]
とします。以下は日付変更の例です。
この操作はパソコン内部のシステムを変更する操作なので、「クライアントは要求された特権を保有していません。」と警告が出る場合があります。この対処方法として、コマンドプロンプトを管理者権限で開くことです。コマンドプロンプトのアイコンを右クリックして「管理者として実行(A)…」を選択して下さい。
「次のプログラムにこのプログラムへの変更を許可しますか?」という警告がでますが、「はい」を押して許可します。すると、管理者としてコマンドプロンプトが開きます。これで日付の変更ができるようになるはずです。
時刻の設定についても同様です。コマンドプロンプト上で、
1 |
time |
を実行すると、現在設定されている時刻が表示され、その下に新規に設定したい時刻の入力を求められます。
入力は
[時]:[分]:[秒].[コンマ秒]
とします。以下は時刻変更の例です。
設定後に正しく設定してあるかを確かめるには、「/t」オプションをつけて確認します。
1 2 |
date /t time /t |
「/t」は日付・時刻の変更設定は行わず、表示だけ行うオプションです。以下実行例です。
利用しやすい日付と時刻の表示になおす(例:2017/09/22 → 20170922)
変数「date」と「time」から取得できる日付や時刻の書式には、「/」や「:」が含まれていてファイル名などに使用するには不都合な場合が多々あります。
そこで、日付を「20161011」のように「YYYYMMDD」形式に変換する方法を紹介します。変換プログラムは以下のようになります。
1 2 3 4 5 6 7 8 9 |
@echo off set year=%date:~0,4% set month=%date:~5,2% set day=%date:~8,2% set date2=%year%%month%%day% echo %date2% |
以下は実行結果です。
変数「date2」に目的の書式の日付を得ることができました。ここでは、「set」を使用して文字列を欲しい場所だけ切り取っています。「set」コマンドについては、「set(変数の設定・計算・ユーザーからの入力情報の取得) -コマンド別解説-」を参考にして下さい。
簡単にプログラムの説明をすると、3行目から5行目で変数「date」から年、月、日の部分だけを切り取って、それぞれ変数「year」、「month」、「day」に格納しています。そして、7行目でそれらを結合して「YYYYMMDD」形式を作っています。詳しくは、「日付フォーマットを「YYYYMMDD」へ変更する(例 2017/06/28 → 20170628) -やりたいことから検索-」で解説しているのでご覧下さい。
時刻についても同様です。変数「time」から得られる「8:27:15.92」を「0827」のように時と分のみを結合した書式にしたい場合は、
1 2 3 4 5 6 7 8 9 |
@echo off set hour=%time:~0,2% set hour=%hour: =0% set minite=%time:~3,2% set time2=%hour%%minite% echo %time2% |
とします。
ここでのポイントは4行目の「%hour: =0%」です。この一文がなかったら、「time2」には「 827」と0が抜けて値が入ってしまいます。そこで、「%hour: =0%」としてスペースを0に置き換える処理を一度かませているのです。詳しくは「数字を任意の桁で0埋めする -やりたいことから検索-」を参照して下さい。