#18 Pythonで学ぶ日付と時刻の扱いの基本
プログラムの中で「今日の日付」や「経過時間」を扱う場面は数多くあります。この記事では、Pythonにおける日付と時刻の基本的な扱い方と、実務でよく使うテクニックを解説します。
datetimeモジュールを使う
Pythonではdatetimeという標準モジュールを使います。
from datetime import datetime
now = datetime.now()
print(now) # 2026-07-30 15:04:22.123456
日付を文字列にする・文字列から日付にする
strftimeという機能を使うと、決まった形式の文字列に変換できます。
print(now.strftime("%Y年%m月%d日")) # 2026年07月30日
逆に、文字列を日付データに変換したい場合はstrptimeを使います。
date_str = "2026-08-01"
date_obj = datetime.strptime(date_str, "%Y-%m-%d")
strftime(フォーマットする、String Formatの略)とstrptime(パースする、String Parseの略)は名前が似ているため混同しやすいですが、「文字列に変換するのがf、文字列から読み取るのがp」と覚えておくと区別しやすくなります。
日付同士を計算する
timedeltaという機能を使うと、日付に対して「3日後」のような計算ができます。
from datetime import timedelta
three_days_later = now + timedelta(days=3)
diff = three_days_later - now
print(diff.days) # 3
2つの日付データの差を求めるとtimedeltaオブジェクトが返り、.daysで日数、.secondsで秒数を取り出せます。
日付だけ・時刻だけを扱う
時刻を含めず日付だけを扱いたい場合は、dateクラスを使うと余計な情報を持たずに済みます。
from datetime import date
today = date.today()
print(today) # 2026-07-30
Pythonならではの注意点
日付や時刻には「タイムゾーン」という、世界のどの地域の時刻かという情報が関わってきます。datetime.now()はパソコンの設定に依存した時刻を返すため、複数の地域で使われるプログラムでは、タイムゾーンを意識した扱いが必要になります。標準ライブラリのzoneinfoを使うと、datetime.now(ZoneInfo("Asia/Tokyo"))のように地域を明示できます。特にサーバー上で動くプログラムでは、実行環境のタイムゾーンが手元のパソコンと異なることがあるため、意図した時刻になっているか確認する習慣をつけましょう。
まとめ
Pythonの日付操作はdatetimeモジュールが基本です。strftimeでの文字列変換、strptimeでの読み取り、timedeltaでの計算を覚えておき、複数地域で使う場合はタイムゾーンにも注意しましょう。
本ページはプロモーションを含みます。
参考書籍(PR)
Pythonをもっと学びたい方には「スッキリわかるPython入門 第2版」がおすすめです。
PR
コードを書かずに自動化したい方へ
「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿