【Python】datetimeの基本的な使い方

はじめに

Pythonで日付や時刻を操作できるdatetimeというライブラリの基本的な使い方を紹介します。

datetimeでは日付や時刻を表したり、それらの計算ができます。

datetime --- 基本的な日付型および時間型 — Python 3.9.4 ドキュメント

データ型

datetimeで主に扱うデータは以下になります。

  • date : 日付のみを扱う
  • time : 時刻のみを扱う
  • datetime : 日付と時刻を扱う
  • timedelta : 時刻の差を扱う

今の日付/時刻

本日の日付を取得する場合は以下です。

from datetime import date

today = date.today()
2021-08-31

現在の日付と時刻を取得する場合は以下です。

from datetime import datetime

now = datetime.now()
2021-08-31 22:05:08.906246

任意の日付/時刻

任意の日付は以下で表します。

from datetime import date

d = date(2021, 9, 30)
2021-09-30

任意の時刻は以下で表します。

from datetime import time

t = time(21, 11, 30)
21:11:30

任意の日付と時刻は以下で表します。

from datetime import datetime

dt = datetime(2021, 9, 1, 10, 00)
2021-09-01 10:00:00

時間の計算

timedeltaを利用して時間の計算ができます。

dateオブジェクトとtimedeltaで日付の計算ができます。

from datetime import date
from datetime import timedelta

today = date.today()
tomorrow = today + timedelta(days=1)

datetimeオブジェクトとtimedeltaでも計算ができます。

from datetime import datetime
from datetime import timedelta

now = datetime.now()
d = now - timedelta(days=1, hours=2, minutes=45)

dateオブジェクト同士、datetime同士で時間の差を計算できます。
結果はtimedelta型になります。

from datetime import datetime

dt1 = datetime(2021, 9, 3, 21, 15)
dt2 = datetime(2021, 8, 30, 19, 30)
dt1 - dt2
4 days, 1:45:00

stringからdatetimeの変換

strptimeを利用します。

引数にはdatetimeに変換したい日付を表す文字列とその文字列のフォーマットを指定します。

from datetime import datetime

dt_string = "2021/08/30 14:30:11"
st_dt = datetime.strptime(dt_string, '%Y/%m/%d %H:%M:%S')

書式のコードは下記で確認できます。

datetime --- 基本的な日付型および時間型 — Python 3.9.4 ドキュメント

date/time/datetimeからstringへの変換

strftimeを利用します。

from datetime import datetime

now = datetime.now()
now_st = now.strftime('%Y/%m/%d %H:%M:%S')

書式のコードは下記で確認できます。

datetime --- 基本的な日付型および時間型 — Python 3.9.4 ドキュメント

参考

タイトルとURLをコピーしました