datetimeで日時を取得
ファイル名を付けるとき、日時のファイル名にしたいことあると思います。
そんなとき役に立つのがdatetimeモジュールです。
このdatetimeモジュールは、標準モジュールのため、特にインストールする必要がなく使えるのがいいですね。
ただインポートは必要ですので、まずはインポートします。
import datetime
いつも通り、インポートしただけでは何も起こりません。
とりあえずprint関数を使って、表示させてみましょう。
ちなみに現在の日時を取得するには、datetime.datetime.now()を用います。
datetimeを二回繰り返す必要があることに注意しましょう。
import datetime
print(datetime.datetime.now())
実行結果
2019-07-14 11:54:55.022221
とりあえず成功です!
しかしマイクロ秒まで出てくるんですね。
ちょっと驚きです。
フォーマットを変更
ただこのまま毎回マイクロ秒まで必要なことはほぼないと思います。
欲しいのは、年日だったり、年日時だったり、年日時分だったり、いろんなパターンがあることでしょう。
そこで、フォーマットを変更してみましょう。
ちょっとその前に、現在の日時を変数に格納しておきます。
import datetime
time_now = datetime.datetime.now()
print(time_now)
実行結果
2019-07-14 12:03:42.700105
日時のフォーマットを変更するには、strftime()を用います。
import datetime
time_now = datetime.datetime.now()
print(time_now.strftime("%Y年%m月%d日 %H:%M:%S"))
実行結果
2019年07月14日 13:17:13
フォーマットの書き方(%Yとか%mとか)はこんな感じです。
下のテーブルの例の列は、上の実行結果を取ってきています。
フォーマット | 意味 | 例 |
%Y | 西暦 (4桁) の 10 進表記 | 2019 |
%y | 0埋めした10進数で表記した世紀無しの年 | 19 |
%m | 0埋めした10進数で表記した月 | 07 |
%B | ロケールの月名 | July |
%b | ロケールの月名の短縮形 | Jul |
%d | 0埋めした10進数で表記した月中の日にち | 14 |
%w | 曜日を10進表記した文字列 (0 が日曜日で、6 が土曜日) | 0 |
%A | ロケールの曜日名 | Sunday |
%a | ロケールの曜日名を短縮形 | Sun |
%H | 0埋めした10進数で表記した時 (24時間表記) | 13 |
%I | 0埋めした10進数で表記した時 (12時間表記)。 | 01 |
%p | ロケールの AM もしくは PM と等価な文字列 | PM |
%M | 0埋めした10進数で表記した分 | 17 |
%S | 0埋めした10進数で表記した秒 | 13 |
とりあえず使いそうなものを紹介しましたが、まだ他にもありますので、ご興味ある方は、下の公式マニュアルを見てみてください。
フォーマット例の紹介
上で色々フォーマットの書き方を紹介しました。
実際に使う際には、色々組み合わせて使うと思うので、その例を紹介しておきます。
・年月日(日本語標記)
import datetime
time_now = datetime.datetime.now()
print(time_now.strftime("%Y年%m月%d日"))
実行結果
2019年07月14日
・年月日(スラッシュで分割)
import datetime
time_now = datetime.datetime.now()
print(time_now.strftime("%Y/%m/%d"))
実行結果
2019/07/14
・年月日時分秒
import datetime
time_now = datetime.datetime.now()
print(time_now.strftime("%Y/%m/%d %H:%M:%S"))
実行結果
2019/07/14 12:42:59
・年月日(フォルダ名用)
import datetime
time_now = datetime.datetime.now()
print(time_now.strftime("%Y%m%d"))
実行結果
20190714
・年月日時分秒(ファイル名用)
import datetime
time_now = datetime.datetime.now()
print(time_now.strftime("%Y%m%d_%H%M%S"))
実行結果
20190714_124502
これで日時に関しては色々できるようになったかと思います。
次回は再度matplotlibに戻り、3次元グラフの書き方を解説していきます。
ということで今回はこんな感じで。
コメント