Pythonのdatetime.strftimeでdatetime型を文字列に変換する

この記事では、Pythonのdatetime型をお好みの文字列に変換します。

datetime.strftimeのサンプルコード

datetime.strftimeの仕様書です。strftime=string from timeです。

サンプルコードのimportモジュールです。

from datetime import datetime
from dateutil import tz
JST = tz.gettz('Asia/Tokyo')
UTC = tz.gettz('UTC')

年月日

年月日に変換します。
9月を”09″ではなく”9″のように一桁の数字にする方法もあります。

# 現在時刻を取得する。
now = datetime.now()

print(now.strftime('%Y%m%d'))

# 20240901

print(now.strftime('%Y-%m-%d'))

# 2024-09-01

print(now.strftime('%Y-%#m-%#d'))

# 2024-9-1

曜日

曜日に変換します。

# 現在時刻を取得する。
now = datetime.now()

print(now.strftime('%A'))

# Sunday

print(now.strftime('%a'))

# Sun

# 現在時刻を取得する。
now = datetime.now()

print(now.strftime('%B'))

# September

print(now.strftime('%b'))

# Sep

print(now.strftime('%m'))

# 09

時間

# 現在時刻を取得する。
now = datetime.now()

# 0埋めした10進数で表記した時 (24時間表記)
print(now.strftime('%H'))

# 14

# 0埋めした10進数で表記した時 (12時間表記)
print(now.strftime('%I'))

# 02

# AM, PM表記
print(now.strftime('%p'))

# PM

# 応用: AM/PM HH:MM
print(now.strftime('%p %I:%M'))

# PM 02:04

タイムゾーン

# 現在時刻を取得する。
now = datetime.now()
print(now)

# 2024-09-01 14:08:34.050249

print(now.strftime('%Z'))

# 
# ↑タイムゾーンなし(native)であれば空文字列となる。

# 現在時刻を取得する。
now_utc = datetime.now(UTC)
print(now_utc)

# 2024-09-01 05:08:34.050249+00:00

print(now_utc.strftime('%Z'))

# 協定世界時
# ↑UTCとは表示されなかった。

# 現在時刻を取得する。
now_jst = datetime.now(JST)
print(now_jst)

# 2024-09-01 14:08:34.050249+09:00

print(now_jst.strftime('%Z'))

# JST
# ↑これは期待通り。