【python】datetimeのformat【よく使う順番に紹介します】

python

pythonでdatetime表示する時のformatを調べる人

pythonでdatetime表示する時のformatを調べる人
「pythonでdatetimeを使用したいのですが、formatを確認しておきたいです。具体的な例として、コピペできるソースコードも欲しいです。」

こんな疑問を解決します。

本記事の内容

  • 1.datetimeの一般的な使用例
  • 2.ログなどでよく使うdatetime formatの例
  • 3.その他のformat
  • 4.datetime 全format一覧

この記事を書いている私はIT業界歴12年、年収1,000万円ちょっとの金融系エンジニアです。学生時代から様々なプログラミング言語を扱ってきましたが、その中でもpythonはとても扱いやすく生産性も高く、オススメの言語です。

本記事では、pythonのdatetimeライブライのformatについて解説します。formatは、ログ出力する際や曜日ごとに異なる処理をする際の曜日判定などで適切に使うと便利です。

具体例を示し、細かい構文に迷ったときにコピー&ペーストして使えることも目指しました。少しでもお役に立てますと幸いです。

1.datetimeの一般的な使用例

datetimeの使用例(よく使うformatを例示)

まずは日時を取得し、標準的なformatで日時を出力する例1つ紹介します。

>>> import datetime
>>> nowtime = datetime.datetime.now()
>>> "{0:%Y/%m/%d %H:%M:%S}".format(nowtime)
'2018/12/16 16:45:06'

2.ログなどでよく使うdatetime formatの例

datetimeのformatには様々なものがありますが、ログ出力などで使われるformatの組み合わせ例を紹介します。

>>> "{0:%Y/%m/%d/%a %H:%M:%S}".format(nowtime)
'2018/12/16/Sun 16:45:06'

>>> "{0:%Y/%m/%d %X}".format(nowtime)
'2018/12/16 16:45:06'

>>> "{0:%Y/%b/%d %H:%M:%S}".format(nowtime)
'2018/Dec/16 16:45:06'

>>> #AM/PMで表記
>>> "{0:%Y/%m/%d %I:%M:%S %p}".format(nowtime)
'2018/12/16 04:45:06 PM'

3.その他のformat

その他のformatを紹介します。%wは、曜日に応じた処理を行うのに便利です。

>>> #曜日($A)を数字で表す(%w)
>>> "{0:%A=%w}".format(nowtime)
'Sunday=0'

>>> "{0:%Y %B}".format(nowtime)
'2018 December'

>>> "{0:%Y-%m-%d %A}".format(nowtime)
'2018-12-16 Sunday'

>>> #年の始めから何週目(%U)、何日目か(%j)
>>> "{0:%Y %U %j}".format(nowtime)
'2018 50 350'

>>> "{0:%c}".format(nowtime)
'Sun Dec 16 16:45:06 2018'

>>> "{0:%x}".format(nowtime)
'12/16/18'

4.datetime 全format一覧

datetime 全format一覧

最後に、個別のformatについて紹介します。各formatとそれぞれの意味は以下の通りです。

format 意味 使用例
%a ロケールの曜日名を短縮形で表示します。
Sun, Mon, …, Sat
(en_US);
So, Mo, …, Sa
(de_DE)
%A ロケールの曜日名を表示します。
Sunday, Monday, …,
Saturday (en_US);
Sonntag, Montag, …,
Samstag (de_DE)
%w 曜日を10進表記した文字列を表示します。0 が日曜日で、6 が土曜日を表します。 0, 1, …, 6
%d 0埋めした10進数で表記した月中の日にち。 01, 02, …, 31
%b ロケールの月名を短縮形で表示します。
Jan, Feb, …, Dec
(en_US);
Jan, Feb, …, Dez
(de_DE)
%B ロケールの月名を表示します。
January, February,
…, December (en_US);
Januar, Februar, …,
Dezember (de_DE)
%m 0埋めした10進数で表記した月。 01, 02, …, 12
%y 0埋めした10進数で表記した世紀無しの年。 00, 01, …, 99
%Y 西暦 (4桁) の 10 進表記を表します。 0001, 0002, …, 2013,
2014, …, 9998, 9999
%H 0埋めした10進数で表記した時 (24時間表記)。 00, 01, …, 23
%I 0埋めした10進数で表記した時 (12時間表記)。 01, 02, …, 12
%p ロケールの AM もしくは PM と等価な文字列になります。
AM, PM (en_US);
am, pm (de_DE)
%M 0埋めした10進数で表記した分。 00, 01, …, 59
%S 0埋めした10進数で表記した秒。 00, 01, …, 59
%f 10進数で表記したマイクロ秒 (左側から0埋めされます)。 000000, 000001, …,
999999
%z UTCオフセットを +HHMM もしくは -HHMM の形式で表示します (オブジェクトがnaiveであれば空文字列)。 (空文字列), +0000, -0400, +1030
%Z タイムゾーンの名前を表示します (オブジェクトがnaiveであれば空文字列)。 (空文字列), UTC, EST, CST
%j 0埋めした10進数で表記した年中の日にち。 001, 002, …, 366
%U 0埋めした10進数で表記した年中の週番号 (週の始まりは日曜日とする)。新年の最初の日曜日に先立つ日は 0週に属するとします。 00, 01, …, 53
%W 0埋めした10進数で表記した年中の週番号 (週の始まりは月曜日とする)。新年の最初の月曜日に先立つ日は 0週に属するとします。 00, 01, …, 53
%c ロケールの日時を適切な形式で表します。
Tue Aug 16 21:30:00
1988 (en_US);
Di 16 Aug 21:30:00
1988 (de_DE)
%x ロケールの日付を適切な形式で表します。
08/16/88 (None);
08/16/1988 (en_US);
16.08.1988 (de_DE)
%X ロケールの時間を適切な形式で表します。
21:30:00 (en_US);
21:30:00 (de_DE)
%% 文字 '%' を表します。 %

 
【python】datetimeのformat|最後に
 

今回は以上です。formatはよく使う訳でもないので、ついつい忘れがちです。参考にしていただければ幸いです。

pythonは自動車、半導体メーカーなどでも使われています