Pythonで日付時刻計測入門
Pythonで日付時刻計測入門
Python初心者のためのdatetime入門
Pythonで日付と時刻を扱うときは、標準ライブラリのdatetimeモジュールが最も基本的なツールです。datetimeはdate、time、datetimeという3つのクラスを提供し、日付だけ、時刻だけ、または両方を扱うことができます。
まずは簡単なインポート例です。
from datetime import datetime, date, time
これで、datetime.now()で現在時刻を取得したり、date.today()で今日の日付を取得したりできます。
現在時刻の取得とフォーマット
Python初心者が最初に直面するのは「現在時刻を表示したい」という要件です。datetime.now()で取得したオブジェクトは、デフォルトではISO 8601形式(例:2026-01-09 12:34:56.789012)で表示されますが、strftimeメソッドを使えば好きなフォーマットに変換できます。
now = datetime.now()
print(now) # 2026-01-09 12:34:56.789012
# フォーマット例
formatted = now.strftime("%Y/%m/%d %H:%M:%S")
print(formatted) # 2026/01/09 12:34:56
フォーマット文字列の中で使える主な書式は以下の通りです。
- %Y: 4桁年
- %m: 2桁月
- %d: 2桁日
- %H: 24時間表記の時
- %M: 分
- %S: 秒
これらを組み合わせることで、レポートやログファイルに適した日時文字列を簡単に生成できます。
時間計測の方法
プログラムの実行時間を測定したい場合、timeモジュールのtime()関数や、datetimeのnow()を使う方法があります。time.time()はUNIXエポックからの秒数を返すので、差分を取るだけで経過時間を秒単位で取得できます。
import time
start = time.time()
# 何らかの処理
time.sleep(2) # 例として2秒待機
end = time.time()
elapsed = end - start
print(f"処理時間: {elapsed:.3f} 秒")
より高精度が必要な場合は、time.perf_counter()を使うとミリ秒以下の精度で計測できます。
日付計算の実践例
日付計算は、将来の日付を求めたり、期間を計算したりする際に頻繁に使われます。datetime.timedeltaクラスを使うと、日数や秒数を加減算できます。
from datetime import datetime, timedelta
today = date.today()
print(f"今日: {today}")
# 10日後
future = today + timedelta(days=10)
print(f"10日後: {future}")
# 1週間前
past = today - timedelta(weeks=1)
print(f"1週間前: {past}")
さらに、月末や特定の曜日を求める場合は、calendarモジュールと組み合わせると便利です。例えば、次の金曜日を求めるコードは以下のようになります。
import calendar
def next_friday(start_date):
weekday = start_date.weekday() # Monday=0, Sunday=6
days_ahead = (4 - weekday) % 7
if days_ahead == 0:
days_ahead = 7
return start_date + timedelta(days=days_ahead)
print(next_friday(today))
このように、Python初心者でも日付と時刻を自在に扱えるようになると、レポート生成やスケジューリング、ログ解析など幅広い場面で活躍できます。
コメント
コメントを投稿