この記事では、Pythonで日付を取得する方法と使い方について解説します。
日付は標準ライブラリであるdatetime
モジュールで扱うことができます。
曜日を取得したい場合は以下の記事を参考にしてください。
それでは、datetime
モジュールを使って日付を扱う方法を見ていきましょう!
日付の取得
日付を取得するにはdatetime
モジュールのdate.today()
を使います。日付に加えて時間も取得したい場合は同モジュールのdatetime.today()
を使います。
datetime.date.today | 2021-1-1 |
---|---|
datetime.datetime.today | 2021-1-1 17:04:49.198164 |
今日の日付の取得
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
任意の日付の生成
任意の日付からdate
オブジェクトやdatetime
オブジェクトを生成することができます。
import datetime
day = datetime.date(2022, 1, 1)
print(f'日付: {day}, 型: {type(day)}')
day = datetime.datetime(2022, 1, 1)
print(f'日付: {day}, 型: {type(day)}')
実行結果
日付: 2022-01-01, 型: <class 'datetime.date'>
日付: 2022-01-01 00:00:00, 型: <class 'datetime.datetime'>
datetime
オブジェクトでは、時間を指定することもできます。
import datetime
day = datetime.datetime(2022, 1, 1, 23, 59, 59)
print(f'日付: {day}, 型: {type(day)}')
実行結果
日付: 2022-01-01 23:59:59, 型: <class 'datetime.datetime'>
年・月・日をバラバラに取得
それぞれの属性にアクセスすることで細かく日付を取得することができます。
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
さらに引くことで過去の日付を取得することもできます。
from datetime import date, timedelta
today = date.today()
yesterday = today - timedelta(days=1)
print(yesterday)
実行結果
2021-10-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日
まとめ
この記事では、Pythonで日付を取得する方法を解説しました。
日付を使うことで日時を指定した処理が可能です。
例えば、ブログの記事は日時を指定して公開することができます。datetime
を使うことで同じような処理を簡単に実装できます。
それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ