【Python】日時を扱うdatetimeの使い方

Pythonプログラミングにおいて、日付や時間の操作は非常に重要なスキルです。

この記事では、Pythonのdatetimeモジュールを使って日付や時間を扱う方法を解説します。

目次から探す

Pythonのdatetimeモジュール概要

Pythonで日付や時間を扱うためには、標準ライブラリに含まれるdatetimeモジュールを使用します。

このモジュールは、日付や時間の操作を簡単かつ効率的に行うためのクラスを提供しています。

datetimeモジュールとは

datetimeモジュールは、Pythonの標準ライブラリに含まれるモジュールで、日付や時間を扱うための機能が提供されています。

このモジュールを使用することで、日付や時間の計算やフォーマット、タイムゾーンの変換など、様々な日付や時間に関する操作が可能になります。

datetimeモジュールを使用するには、以下のようにimport文を使ってモジュールをインポートします。


import datetime

datetimeモジュールの主なクラス

datetimeモジュールには、以下のような主なクラスが含まれています。

datetime.date

日付(年、月、日)を扱うためのクラスです。

このクラスを使って、日付の計算やフォーマットができます。


import datetime
today = datetime.date.today()
print("今日の日付:", today)

datetime.time

時間(時、分、秒、マイクロ秒)を扱うためのクラスです。

このクラスを使って、時間の計算やフォーマットができます。


import datetime
now = datetime.datetime.now().time()
print("現在の時刻:", now)

datetime.datetime

日付と時間(年、月、日、時、分、秒、マイクロ秒)を扱うためのクラスです。

このクラスを使って、日付と時間の計算やフォーマット、タイムゾーンの変換ができます。


import datetime
now = datetime.datetime.now()
print("現在の日付と時刻:", now)

datetime.timedelta

2つの日付や時間の差を表すためのクラスです。

このクラスを使って、日付や時間の加算や減算ができます。


import datetime
today = datetime.date.today()
one_week = datetime.timedelta(weeks=1)
next_week = today + one_week
print("1週間後の日付:", next_week)

これらのクラスを組み合わせることで、日付や時間に関する様々な操作が可能になります。

次のセクションでは、これらのクラスを使った具体的な例を見ていきましょう。

datetimeクラスの基本操作

datetimeクラスを使って日付や時間を扱う方法を学びましょう。

datetimeオブジェクトの生成

datetimeオブジェクトを生成する方法は主に2つあります。

現在の日時を取得する方法と、特定の日時を生成する方法です。

現在の日時を取得

現在の日時を取得するには、 datetime.now() 関数を使用します。

以下のサンプルコードでは、現在の日時を取得し、表示しています。


from datetime import datetime
now = datetime.now()
print(now)
2022-01-01 12:34:56.123456

特定の日時を生成

特定の日時を生成するには、 datetime(year, month, day, hour, minute, second, microsecond) 関数を使用します。

以下のサンプルコードでは、2022年1月1日0時0分0秒を生成し、表示しています。


from datetime import datetime
dt = datetime(2022, 1, 1, 0, 0, 0)
print(dt)
2022-01-01 00:00:00

datetimeオブジェクトの属性

datetimeオブジェクトには、年・月・日・時・分・秒・マイクロ秒の情報が含まれています。

これらの属性を取得する方法を見ていきましょう。

年・月・日・時・分・秒・マイクロ秒の取得

datetimeオブジェクトの各属性は、以下のようにして取得できます。


from datetime import datetime
dt = datetime(2022, 1, 1, 12, 34, 56, 123456)
print(dt.year)      # 2022
print(dt.month)     # 1
print(dt.day)       # 1
print(dt.hour)      # 12
print(dt.minute)    # 34
print(dt.second)    # 56
print(dt.microsecond) # 123456

datetimeオブジェクトのフォーマット

datetimeオブジェクトを文字列に変換する方法や、文字列からdatetimeオブジェクトに変換する方法を見ていきましょう。

strftime()メソッド

strftime() メソッドを使って、datetimeオブジェクトを任意のフォーマットの文字列に変換できます。

以下のサンプルコードでは、datetimeオブジェクトを"YYYY/MM/DD hh:mm:ss"形式の文字列に変換しています。


from datetime import datetime
dt = datetime(2022, 1, 1, 12, 34, 56)
formatted = dt.strftime("%Y/%m/%d %H:%M:%S")
print(formatted)
2022/01/01 12:34:56

strptime()メソッド

strptime() メソッドを使って、文字列からdatetimeオブジェクトに変換できます。

以下のサンプルコードでは、"YYYY/MM/DD hh:mm:ss"形式の文字列をdatetimeオブジェクトに変換しています。


from datetime import datetime
date_string = "2022/01/01 12:34:56"
dt = datetime.strptime(date_string, "%Y/%m/%d %H:%M:%S")
print(dt)
2022-01-01 12:34:56

これで、datetimeクラスの基本操作について学びました。

これらの操作を使って、日付や時間を自由に扱うことができます。

1 2 3 4 5

目次から探す