Pythonで日時を取得 datetime 〜日時取得方法とフォーマットの変更方法〜

スポンサーリンク

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
%y0埋めした10進数で表記した世紀無しの年19
%m0埋めした10進数で表記した月07
%Bロケールの月名July
%bロケールの月名の短縮形Jul
%d0埋めした10進数で表記した月中の日にち14
%w曜日を10進表記した文字列
(0 が日曜日で、6 が土曜日)
0
%Aロケールの曜日名Sunday
%aロケールの曜日名を短縮形Sun
%H0埋めした10進数で表記した時 (24時間表記)13
%I0埋めした10進数で表記した時 (12時間表記)。01
%pロケールの AM もしくは PM と等価な文字列PM
%M0埋めした10進数で表記した分17
%S0埋めした10進数で表記した秒13

とりあえず使いそうなものを紹介しましたが、まだ他にもありますので、ご興味ある方は、下の公式マニュアルを見てみてください。

datetime --- 基本的な日付型および時間型 — Python 3.8.3 ドキュメント
スポンサーリンク

フォーマット例の紹介

上で色々フォーマットの書き方を紹介しました。

実際に使う際には、色々組み合わせて使うと思うので、その例を紹介しておきます。

・年月日(日本語標記)

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次元グラフの書き方を解説していきます。

Pythonで3Dグラフ表示 matplotlib,Axes3D 〜基本編〜
データの準備これまでmatplotlibでは2次元データを扱ってきました。しかし時には3次元データを使うなんてこともあるでしょう。今回は簡単にですが、3次元データのプロットの仕方を解説していきます。まずは3...

ということで今回はこんな感じで。

コメント

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