Pythonで日付・時刻を扱う方法を入門者向けに解説します。

プログラミング 公開日:
ブックマーク
Pythonで日付・時刻を扱う方法を入門者向けに解説します。
多くのアプリケーションでは、必ずと言っていいほど日付や時刻を扱う場面があります。 本記事では、Pythonのdatetimeモジュールを使った日付や時刻の操作方法について紹介します。

はじめに・・

多くのアプリケーションでは、必ずと言っていいほど日付や時刻を扱う場面があります。
本記事では、Pythonのdatetimeモジュールを使った日付や時刻の操作方法について紹介します。

datetimeモジュールとは?

Pythonのdatetimeモジュールは、日付や時刻を操作することができるモジュールです。
datetimeモジュールには、日付や時刻を扱うためのクラスが用意されています。

例えば以下のようなクラスがあります。

  • datetime.date: 年、月、日を扱うクラス
  • datetime.time: 時、分、秒、マイクロ秒を扱うクラス
  • datetime.datetime: 日付と時間を合わせて扱うクラス
  • datetime.timedelta: 2つのdatetimeオブジェクト間の差を表すクラス

これらを使うことで、現在の日付を取得したり、日付の計算を行ったりすることができます。

基本的な使い方

まずはdatetimeモジュールを使って、現在の日付と時刻を取得してみましょう。

最初に、datetimeモジュールをインポートします。

from datetime import datetime

現在の日付と時刻の取得 現在の日付と時刻を取得するには、datetime.now()関数を使います。
この関数は、現在のローカルタイムゾーンに基づいた日付と時刻を返します。

from datetime import datetime

# 現在の日時を取得
now = datetime.now()
print(now)  # 2024-11-01 14:30:00.123456

日時情報の取得

次に指定した日付や時刻を取得してみましょう。

指定した日付や時刻を取得するには、次のような属性を使っていきます。

属性 説明
year
month
day
hour
minute
second
microsecond マイクロ秒

先ほど解説したnow()関数を使って、下記のように取得することができます。

from datetime import datetime

now = datetime.now()

print(f"年: {now.year}")
print(f"月: {now.month}")
print(f"日: {now.day}")
print(f"時: {now.hour}")
print(f"分: {now.minute}")
print(f"秒: {now.second}")
print(f"マイクロ秒: {now.microsecond}")

出力結果は以下の通りです。

年: 2024
月: 11
日: 1
時: 14
分: 30
秒: 11
マイクロ秒: 123456

日付や時間の計算

続いて日付や時刻の加算、減算、比較などの操作を行ってみましょう。
日付の操作は、datetimeのtimedeltaを使うことで実現できます。

日付の加算

下記の日付は「2024年11月1日」から、1日後の日付を取得するコードです。

from datetime import datetime, timedelta

date = datetime(2024, 11, 1)
print(date) # 2024-11-01 00:00:00

one_day_later = date + timedelta(days=1)
print(one_day_later) # 2024-11-02 00:00:00

日付の減算

下記の日付は「2024年11月1日」から、1日前の日付を取得するコードです。

from datetime import datetime, timedelta

now = datetime(2024, 11, 1)
print(now) # 2024-11-01 00:00:00

one_day_later = now - timedelta(days=1)
print(one_day_later) # 2024-10-31 00:00:00

日付の比較

datetimeモジュールは、比較演算子を使って比較することができます。

from datetime import datetime

date1 = datetime(2024, 11, 1)
date2 = datetime(2024, 11, 2)

if date1 < date2:
    print("date1 は date2 よりも前です")

日付のフォーマットを変更する

仕様に合わせて、datetimeモジュールが提供するフォーマット以外で日付を表したい場合があると思います。

そのような時は、strftime() メソッドを使うことでフォーマットを指定することが可能です。

from datetime import datetime

now = datetime.now()
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date)  # 2024-11-01 14:30:00

また文字列からdatetimeモジュールを作りたい場合、strptime()メソッドを使います。

from datetime import datetime

date_string = "2024-11-01 14:30:00"
date_time = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print(date_time)  # 2024-11-01 14:30:00

date クラスと time クラス

datetimeモジュールには、日付と時刻を個別に扱うためのdateクラスとtimeクラスがあります。

dateクラスは、年・月・日を表す日付オブジェクトを作成します。

例えば、今日の日付を取得したり、指定した文字列でdateクラスを作りたい場合、下記のように書くことができます。

from datetime import date

today = date.today()
print(today)  # 2024-11-01

birthday = date(1990, 1, 1)
print(birthday)  # 1990-01-01

またtimeクラスは、時間・分・秒・マイクロ秒を表す時刻オブジェクトを作成することができます。

from datetime import time

now = time(14, 30, 0)
print(now)  # 14:30:00

最後に・・

いかがでしたでしょうか?
Pythonに限らず、コードを書いていると日付や時間を扱う機会に多く出会う一方で、日付や時間の操作は思わぬバグを生み出すことも多いです。

本記事を参考にして、Pythonにおける日付や時間の操作をマスターしていきましょう。

TECH PLAYでは、ITに関わる様々なイベント・勉強会・講演会・交流会・カンファレンス・セミナーなどの情報を集約し掲載しています。

テクノロジーと共に成長しよう、
活躍しよう。

TECH PLAYに登録すると、
スキルアップやキャリアアップのための
情報がもっと簡単に見つけられます。

面白そうなイベントを見つけたら
積極的に参加してみましょう。
ログインはこちら

タグからイベントをさがす