この記事では、Pythonで日付(年月日)と時間を取得する方法と何日前、何日後の日付を計算する方法を解説します。
曜日を取得したい場合は以下の記事を参考にしてください。
Link曜日を取得する方法を解説します
それでは、日付や時間を取得する方法と計算する方法を見ていきましょう!
日付の取得・生成
日付を取得するには、datetime
モジュールのdate
型を使います。
from datetime import date
今日の日付
date.today()
メソッドを使うことで今日の日付を持ったdate
型のインスタンスを生成することができます。
from datetime import date
today = date.today()
print(today, type(today))
# 2023-10-02 <class 'datetime.date'>
日付の生成
任意の日付からdate
オブジェクトを生成することもできます。
from datetime import date
someday = date(2023, 1, 2)
print(someday, type(someday))
# 2023-01-02 <class 'datetime.date'>
年月日の取得
それぞれの属性にアクセスすることで年月日をバラバラに取得することができます。
from datetime import date
today = date.today()
print(f'年: {today.year}') # 年: 2023
print(f'月: {today.month}') # 月: 10
print(f'日: {today.day}') # 日: 2
日時の取得・生成
日付に加え時間も取得したい場合は、datetime
モジュールのdatetime
型を使います。
from datetime import datetime
現在の日時
datetime.now()
を使うことで現在の時刻を持ったdatetime
型のインスタンスを生成することができます。
from datetime import datetime
now = datetime.now()
print(now)
# 2023-10-02 22:47:27.846610
日時の生成
任意の日時からdate
オブジェクトを生成することもできます。
from datetime import datetime
someday = datetime(2023, 1, 2, 3, 4, 5, 6)
print(someday, type(someday))
# 2023-01-02 03:04:05.000006 class <'datetime.datetime'>
時分秒の取得
属性にアクセスすることで時分秒をバラバラに取得できます。
from datetime import datetime
now = datetime.now()
print(f'年: {now.year}') # 年: 2023
print(f'月: {now.month}') # 月: 10
print(f'日: {now.day}') # 日: 2
print(f'時: {now.hour}') # 時: 23
print(f'分: {now.minute}') # 分: 1
print(f'秒: {now.second}') # 秒: 44
print(f'マイクロ秒: {now.microsecond}') # マイクロ秒: 764448
日付と日時の計算
datetime.datetime.timedelta()
クラスを使うことで日付を計算することができます。例えば明日の日付を取得したい場合は、今日の日付に1日足すことで取得することができます。
from datetime import date, timedelta
today = date.today()
print(today)
# 2023-10-02
# 今日の日付 + 1日
tomorrow = today + timedelta(days=1)
print(tomorrow)
# 2023-10-03
月をまたぐことも可能です。
from datetime import date, timedelta
today = date.today()
print(today)
# 2023-10-02
next_month= today + timedelta(days=31)
print(next_month)
# 2023-11-02
さらに引くことで過去の日付を取得することもできます。
from datetime import date, timedelta
today = date.today()
print(today)
# 2023-10-02
yesterday = today - timedelta(days=1)
print(yesterday)
# 2023-10-01
datetime
型を使うことで時間で計算することも可能です。
from datetime import datetime, timedelta
now = datetime.now()
print(now)
# 2023-10-02 23:14:19.320259
h24 = now + timedelta(hours=3000)
print(h24)
# 2024-02-04 23:14:19.320259
日付のフォーマット
strftime()
メソッドを使うことで引数に渡した書式に従って表示させることができます。
from datetime import date
today = date.today()
print(today.strftime('%Y年%m日%d日'))
# 2023年10日02日
詳しい書式は以下のリンクを参考にしてください。
Linkstrftime() と strptime() の書式コード - datetime --- 基本的な日付型および時間型 — Python ドキュメント
isoformat()
メソッドを使うことでYYYY-MM-DD
で表した文字列を取得できます。
from datetime import date
today = date.today()
td = today.isoformat()
print(td, type(td))
# 2023-10-02 <class 'str'>
日付から逆フォーマット
文字列の書式がYYYY-MM-DD
ならfromisoformat()
メソッドを使うことでdatetime.date
オブジェクトを生成することができます。
from datetime import date
d = '2023-01-02'
d = date.fromisoformat(d)
print(f'{d.year}年{d.month}月{d.day}日')
# 2023年1月2日
まとめ
この記事では、Pythonで日付を取得する方法を解説しました。
日付を使うことで日時を指定した処理が可能です。
例えば、ブログの記事は日時を指定して公開することができます。datetime
を使うことで同じような処理を簡単に実装できます。
それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ