【エコンティア】経済学・データサイエンス
 
ECONTIER

【Python】datetimeとstrftimeを使って日時を表示のやり方

datetimeとstrftimeの使い方

strftimeはdatetimeモジュールの中でのdate,time,datetime,またはtimeモジュールの関数として利用することが出来ます。

 

strftimeリスト

 

strftime() 出力されるもの
%y 年(YY)
%m 月(01から12まで)
%d 日(01から31まで)
%H 時(0から23まで)
%M 分(0から59まで)
%S 秒(0から59まで)
%A ロケールにおける完全な曜日
%a ロケールにおける省略形の曜日
%B ロケールにおける完全な月
%b ロケールにおける省略形の月
%c ロケールに適した日付と時刻の表現
%I 時(AM/PM形式で01から12まで)
%p AMまたはPM
%Z タイムゾーン名
%z UTCとのタイムゾーンオフセット

 

 

 

2023年06月23日(金曜日)、15時30分45秒を例として使います。

 

%Y – 年(4桁)

 

from datetime import datetime

current_time = datetime.now()
formatted_year = current_time.strftime("%Y")
print(formatted_year)
##出力例: 2023

 

 

 

%y – 年(2桁)

 

formatted_year2 = current_time.strftime("%y")
print(formatted_year2)
##出力例: 23

 

%m – 月(2桁)

formatted_month = current_time.strftime("%m")
print(formatted_month)
出力例: 06

 

%d – 日(2桁)

formatted_day = current_time.strftime("%d")
print(formatted_day)
##出力例: 23

 

 

 

%Y%m%d

組み合わせでも可能です

formatted_Ymd = current_time.strftime("%Y,%m,%d")
print(formatted_Ymd)
##2023,06,26

 

%H – 時間(24時間・2桁)

 

formatted_hour = current_time.strftime("%H")
print(formatted_hour)
##出力例: 15

 

%M – 分(2桁)

formatted_minute = current_time.strftime("%M")
print(formatted_minute)
##出力例: 30

%S – 秒(2桁)

formatted_second = current_time.strftime("%S")
print(formatted_second)
##出力例: 45

 

 

 

 

%A – 曜日(完全形)

formatted_weekday_full = current_time.strftime("%A")
print(formatted_weekday_full)
##出力例: Friday

 

%a – 曜日(省略形)

formatted_weekday_abbr = current_time.strftime("%a")
print(formatted_weekday_abbr)
##出力例: Fri

 

%B – 月(完全形)

formatted_month_full = current_time.strftime("%B")
print(formatted_month_full)
##出力例: June

%b – 月(省略形)

formatted_month_abbr = current_time.strftime("%b")
print(formatted_month_abbr)
出力例: Jun

 

%c – ロケールに適した日時表現

formatted_datetime = current_time.strftime("%c")
print(formatted_datetime)
##出力例: Fri Jun 23 15:30:45 2023

 

%I – 時間(12時間制・2桁)

 

例えば15時だと03時に変換されます。

formatted_hour_12 = current_time.strftime("%I")
print(formatted_hour_12)
出力例: 03

 

 

%p – AMまたはPM

formatted_period = current_time.strftime("%p")
print(formatted_period)
##出力例: PM

 

 

%z: タイムゾーンオフセット(UTCとの差)を表す指定子です。例えば、+0900や-0500のような形式で表示されます。タイムゾーンのオフセットはUTCからの時間の差を表し、正や負の数値で表されます。

%Z: タイムゾーン名を表す指定子です。例えば、JSTやESTのような形式で表示されます。タイムゾーン名は地域や国によって異なり、一般的なタイムゾーンの略称が表示されます。

つまり、%zはタイムゾーンオフセットを表示し、%Zはタイムゾーンの名前を表示します。例えば、%zは+0900と表示される一方、%ZはJSTと表示されることがあります。

%Z – タイムゾーン名

now = datetime.now(ZoneInfo("Asia/Tokyo"))
now.strftime("%Z")
##出力例:'JST'

%Z – タイムゾーンオフセット(UTCとの差)

now.strftime("%z")
##出力例:'+0900'