この記事では、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日
- datetime --- 基本的な日付型および時間型 — Python ドキュメント
まとめ
この記事では、Pythonで日付を取得する方法を解説しました。
日付を使うことで日時を指定した処理が可能です。
例えば、ブログの記事は日時を指定して公開することができます。datetimeを使うことで同じような処理を簡単に実装できます。
それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ


