Python datetime ライブラリ完全ガイド

Python 標準ライブラリの datetime は、日時の処理やフォーマットを行うための強力なツールです。本記事では、datetime ライブラリの基本概念から実践的な使用例までを詳しく解説します。

1. datetime ライブラリの概要

  • datetime は、日付と時刻を扱うための標準ライブラリです。
  • 現在時刻の取得、日時のフォーマット変換、タイムゾーンの管理などが可能です。
  • date, time, datetime, timedelta, timezone の5つの主要なクラスを提供します。

インストール方法

datetime は Python の標準ライブラリなので、追加のインストールは不要です。

import datetime
--- ## 2. 主な機能と使用例 ### (1) 現在の日時の取得
import datetime

# 現在の日付と時刻を取得
now = datetime.datetime.now()
print("現在の日時:", now)

# 現在の日付のみを取得
print("現在の日付:", datetime.date.today())
**使用例:** データベースのタイムスタンプやログに現在の時刻を記録する際に利用できます。 --- ### (2) 日時のフォーマット変換
import datetime

# 日時オブジェクトを文字列に変換
now = datetime.datetime.now()
formatted_time = now.strftime("%Y-%m-%d %H:%M:%S")
print("フォーマット済み日時:", formatted_time)

# 文字列を日時オブジェクトに変換
str_time = "2025-03-01 12:30:45"
dt_obj = datetime.datetime.strptime(str_time, "%Y-%m-%d %H:%M:%S")
print("変換後の日時オブジェクト:", dt_obj)
**使用例:** データのエクスポートや、API とのデータやり取りで日時を統一したフォーマットに変換する際に活用できます。 --- ### (3) 日時の加算・減算
import datetime

# 現在の日時を取得
now = datetime.datetime.now()
print("現在の日時:", now)

# 1日後の日時を計算
tomorrow = now + datetime.timedelta(days=1)
print("1日後の日時:", tomorrow)

# 1週間前の日時を計算
last_week = now - datetime.timedelta(weeks=1)
print("1週間前の日時:", last_week)
**使用例:** 有効期限の計算やリマインダーの設定に利用できます。 --- ### (4) タイムゾーンの設定
import datetime

# タイムゾーンの指定
utc_now = datetime.datetime.now(datetime.timezone.utc)
print("UTC 現在時刻:", utc_now)

# 日本時間(JST)に変換
jst = datetime.timezone(datetime.timedelta(hours=9))
jst_now = utc_now.astimezone(jst)
print("日本時間(JST):", jst_now)
**使用例:** 異なる地域の時刻を扱う際に便利です。 --- ### (5) 月末の日付を取得
import datetime
import calendar

# 現在の年月
year = datetime.date.today().year
month = datetime.date.today().month

# 月末の日付を取得
last_day = calendar.monthrange(year, month)[1]
print(f"{year}年{month}月の最終日: {last_day}日")
**使用例:** 月末の締め処理や請求書の発行時に利用できます。 --- ### (6) 日付の差分計算
import datetime

# 2つの日付の差分を計算
date1 = datetime.date(2025, 3, 1)
date2 = datetime.date(2025, 2, 1)
diff = date1 - date2
print("日付の差分:", diff.days, "日")
**使用例:** プロジェクトの締め切り日までの日数を計算するのに役立ちます。 --- ### (7) 未来または過去の日付を取得
import datetime

# 現在の日付を取得
today = datetime.date.today()

# 90日後の日付
future_date = today + datetime.timedelta(days=90)
print("90日後の日付:", future_date)

# 30日前の日付
past_date = today - datetime.timedelta(days=30)
print("30日前の日付:", past_date)
**使用例:** 契約期間の計算やタスクのリマインダー設定に利用できます。 --- ## 3. `datetime` vs `time` の比較 | 機能 | `datetime` ライブラリ | `time` ライブラリ | |------------------------|-----------------|---------------| | 現在の日時の取得 | ✅ | ✅ | | 日時のフォーマット変換 | ✅ | ✅ | | 日時の加算・減算 | ✅ | ❌ | | タイムゾーンの管理 | ✅ | ❌ | | 高精度な時間計測 | ❌ | ✅ | --- ## まとめ Python の `datetime` ライブラリは、日時の処理を簡単に実装するための強力なツールです。ログの管理、日付フォーマットの変換、タイムゾーンの設定など、多くの用途に活用できます。Python プログラムの日時管理にぜひ活用してください! 🚀