日付と時間_2(Python_33)

この連載では、Pythonについて色々な形で再学習に取り組んでいます。前回の記事はこちらになります。 hirocom777.hatenadiary.org

前回は日付と時間について取り組みました。Pythonでは、datetimeモジュールを使って日付と時間を扱います。

今回も日付と時間です。datetimeモジュールの応用方法について学びましょう。

当日の日付、現在の日時を取得

プログラムを組む際に、当日の日付や現在の日時を取得したいケースがよくあります。当日の日付の取得は、dateオブジェクトのtodayメソッドを使います。現在の日時の取得は、datetimeオブジェクトのnowメソッドを使います。

print(datetime.date.today()) # 2024-08-31(今日の日付)を返す
print(datetime.datetime.now()) # 2024-08-31 09:34:09.677966(現在の日時)を返す

曜日の取得

日時(日付と時間)を表すdatetimeオブジェクトのweekdayメソッドで、曜日を表す整数値が得られます。月曜日が0で日曜日が6になります。dateオブジェクトにも同様のメソッドがあります。

print(datetime.datetime(2024,8,31).weekday()) # 5(土曜日)を返す

datetime型とdate型、time型との変換

datetime型からdate型、time型へ変換する場合は、それぞれdatetimeオブジェクトのdateメソッド、timeメソッドを使います。

dt = datetime.datetime(2024,8,31,15,7,30,10)
print(dt.date()) # 2024-08-31 を返す
print(type(dt.date())) # <class 'datetime.date'> を返す
print(dt.time()) # 15:07:30.000010 を返す
print(type(dt.time())) # <class 'datetime.time'> を返す

date型、time型からdatetime型へ変換するには、datetimeオブジェクトのcombineメソッドを使います。

d = datetime.date(2024,8,31)
t = datetime.time(15,7,30,10)

print(datetime.datetime.combine(d,t)) # 2024-08-31 15:07:30.000010 を返す

文字列との変換

datetime型から文字列型に変換するには、datetimeオブジェクトのstrftimeメソッドを使用します。変換する際には、書式を指定します。strftimeメソッドはdate型、time型にもあります。

dt = datetime.datetime(2024,8,31,15,7,30)

d = dt.date()
t = dt.time()

print(dt.strftime('%Y/%m/%d %H:%M:%S')) # 2024/08/31 15:07:30 を返す
print(d.strftime('%Y/%m/%d')) # 2024/08/31 を返す
print(t.strftime('%H:%M:%S')) # 15:07:30 を返す

文字列型からdatetime型に変換するには、datetimeオブジェクトのstrptimeメソッドを使用します。

s = '2024/08/31 15:07:30'
dt = datetime.datetime.strptime(s,'%Y/%m/%d %H:%M:%S')

print(dt) # 2024-08-31 15:07:30 を返す 
print(type(dt)) # <class 'datetime.datetime'> を返す

以下に、strftimeメソッド、strptimeメソッドで書式を指定する代表的なコード一覧を示します。数値は0埋め表記になります。

書式コード 意味
%d 日(2桁)
%m 月(2桁)
%y 西暦下2桁
%Y 西暦4桁
%H 時 (24時間表記)
%I 時 (12時間表記)
%M 分(2桁)
%S 秒(2桁)
%f マイクロ秒(6桁)
%A 曜日名
%a 曜日名(短縮形)
%B 月名
%b 月名(短縮形)

次回は日時データの計算

いかがでしょうか。datetimeモジュールには便利な機能がありますね。日時データは生活に密着していて、色々な使用方法があります。次回は日時データの計算について見ていきたいと思います。

hirocom777.hatenadiary.org

Python再学習のまとめはこちら!!