Created: 2022-02-07 / Updated: 2022-02-07
Pythonの日付時刻フォーマット文字列
目次
概要
- 日付/時刻のデータを書式化するには、以下のいずれかの方法を利用します。
- datetime.datetime.
strftimeメソッド
- datetime.date.
strftimeメソッド
- datetime.time.
strftimeメソッド
- time.
strftime関数
- f文字列、format関数、文字列のformatメソッド
strftimeメソッド、strftime関数
- Pythonのデフォルトでは
MM/DD/YY hh:mm:ss
という日付時刻形式のようです。
- デフォルトは
%x %X
というお手軽フォーマットが利用できます。
- 例を簡潔にするため、以降
%x %X
を使っていきます。
datetime.datetime.strftimeメソッド
Copy
import datetime
now = datetime.datetime.now()
print(type(now))
print(now.strftime("%x %X"))
datetime.date.strftimeメソッド
Copy
import datetime
now = datetime.datetime.now()
d = now.date()
print(type(d))
print(d.strftime("%x %X"))
- dateクラスだと時刻は00:00:00になるみたいです。
datetime.time.strftimeメソッド
Copy
import datetime
now = datetime.datetime.now()
t = now.time()
print(type(t))
print(t.strftime("%x %X"))
- timeクラスだと日付が01/01/00になるみたいです。
time.strftime関数
Copy
import time
nowt = time.localtime()
print(type(nowt))
print(time.strftime("%x %X", nowt))
- timeモジュールのstrftime関数を使う場合は、語順が逆になるみたいです。
日本用のフォーマット
- デフォルト以外を使いたい場合はフルでフォーマット文字列を指定していきます。
- 日本でよく使うのは
YYYY/MM/DD hh:mm:ss
なので、%Y/%m/%d %H:%M:%S
とするとよいようです。
Copy
print(now.strftime("%Y/%m/%d %H:%M:%S"))
f文字列
Copy
print(f"{now:%x %X}")
Copy
print(format(now, "%x %X"))
Copy
print("{:%x %X}".format(now))
日付時刻フォーマット文字列
書式コード |
説明 |
例 |
%Y |
西暦(4桁表記。0埋め) |
2021 |
%m |
月(2桁表記。0埋め) |
11 |
%d |
日(2桁表記。0埋め) |
4 |
%H |
時(24時間制。2桁表記。0埋め) |
17 |
%M |
分(2桁表記。0埋め) |
37 |
%S |
秒(2桁表記。0埋め) |
28 |
%y |
西暦の下2桁(0埋め) |
21 |
%l |
AM/PMを表す文字列 |
PM |
%x |
日付をMM/DD/YY形式にしたもの |
2011/4/21 |
%X |
時刻をhh:mm:ss形式にしたもの |
17:37:28 |
%a |
曜日の短縮形 |
Thu |
%A |
曜日 |
Thursday |
%z |
現在のタイムゾーンとUTC(協定世界時)とのオフセット |
900 |
%Z |
現在のタイムゾーン |
JST |
補足
%x
と%X
はデフォルトの略形式のようです。
- 基本的な考え方はおそらく、日付が小文字、時刻が大文字を使う。
- 例1:
%y%m%d
=年月日 (年は2桁)
- 例2:
%H%M%S
=時分秒
- 日本人にとってはたぶんこれが基本形なのですが、年が2桁なのはちょっとイヤなので、
%Y
を大文字にすると、4桁になるみたいです。
- 上記のように覚えておけば、日付と時刻部分を選ぶ時に迷わなくなるかも、知らんけど。
参考
ソース
関連メモ
参照
参考サイト