#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専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本