Python

【Python】日付の取得と計算する方法を解説

この記事では、Pythonで日付を取得する方法と使い方について解説します。日付を扱うには標準ライブラリであるdatetimeモジュールを使います。それでは、datetimeモジュールを使って日付を扱う方法を見ていきましょう!

日付の取得

日付を取得するにはdatetimeモジュールを使います。標準ライブラリなのでインポートするだけで使用可能です。

今日の日付の取得

datetime.date.today()クラスを使うことで今日の日付を取得することができる。datetime.datetime.today()クラスでは時刻まで取得できます。

from datetime import date, datetime

print(date.today())
print(datetime.today())

実行結果

2021-10-14
2021-10-14 17:04:49.198164

年・月・日をバラバラに取得

それぞれの属性にアクセスすることで細かく日付を取得することができます。

from datetime import date, datetime

today = date.today()
todayall = datetime.today()

# 年
print(today.year)
print(todayall.year)

# 月
print(today.month)
print(todayall.month)

# 日
print(today.day)
print(todayall.day)

実行結果

2021
2021
10
10
14
14

datetime.datetime.today()クラスでは、日付だけでなく時刻もバラバラに取得することができます。

from datetime import datetime

todayall = datetime.today()

# 時
print(todayall.hour)

# 分
print(todayall.minute)

# 秒
print(todayall.second)

# m秒
print(todayall.microsecond)

実行結果

17
20
40
195574

日付の計算

datetime.datetime.timedelta()クラスを使うことで日付を計算することができます。明日の日付を取得したい場合には、今日の日付を取得し、1日足すことで取得することができます。

from datetime import date, datetime, timedelta

today = date.today()

# 今日の日付 + 1日
tomorrow = today + timedelta(days=1)
print(tomorrow)

# datetime.today()も計算可能
todayall = datetime.today()

tomorrow = todayall + timedelta(days=1)
print(tomorrow)

実行結果

2021-10-15
2021-10-15 17:34:45.400141

月をまたぐことも可能。

from datetime import date, timedelta

today = date.today()

tomorrow = today + timedelta(days=30)
print(tomorrow)

実行結果

2021-11-13

日付のフォーマット

strftime()メソッドを使うことで引数に渡した書式に従ってフォーマットさせることができます。

from datetime import date

today = date.today()
print(today.strftime('%Y年%m日%d日'))

実行結果

2021年10日14日

詳しい書式は以下のリンクを参考にしてください。

Linkstrftime() と strptime() の書式コード – datetime — 基本的な日付型および時間型 — Python ドキュメント

また、isoformat()メソッドを使うことでYYYY-MM-DDで表した文字列を取得できます。

from datetime import date

today = date.today()
td = today.isoformat()

print(td, type(td))

実行結果

2021-10-14 <class 'str'>

日付から逆フォーマット

文字列の書式がYYYY-MM-DDならfromisoformat()メソッドを使うことでdatetime.dateオブジェクトを生成することができます。

from datetime import date

d = '2022-01-01'

d = date.fromisoformat(d)
print(f'{d.year}年{d.month}月{d.day}日')

実行結果

2022年1月1日
最短3か月でエンジニア転職『DMM WEBCAMP COMMIT』