【Python】日付と時刻

アイキャッチ画像

Pythonには、日付と時刻を扱うための標準モジュールであるdatetimeがあります。

datetimeモジュールには、date、time、datetime、timedelta、tzinfoなどのクラスが含まれています。

以下では、それぞれのクラスについて詳しく説明します。

目次

datetimeののクラス

  • date:日付を表すクラス
  • time:時刻を表すクラス
  • datetime:日時を表すクラス
  • timedelta:日付・時刻の差分を表すクラス

dateクラス

dateクラスは、年、月、日の情報を扱うためのクラスです。

dateクラスのインスタンスを作成するには、以下のようにします。

from datetime import date
d = date(2023, 3, 26)
print(d)  # 2023-03-26
import datetime
d = datetime.date(2023, 3, 26)
print(d)  # 2023-03-26

これで、2023年3月26日を表すdateオブジェクトが作成されます。

dateオブジェクトには、以下のような属性があります。

  • year: 年を表す整数
  • month: 月を表す整数
  • day: 日を表す整数
  • weekday: 曜日を表す整数(月曜日が0、日曜日が6)
  • isoweekday: ISO曜日を表す整数(月曜日が1、日曜日が7)
  • isocalendar(): ISOカレンダー形式で年、週、曜日をタプルで返す

dateオブジェクトのメソッドには、以下のようなものがあります。

  • strftime(): 日付を指定したフォーマットの文字列に変換する
  • replace(): 年、月、日を置き換えた新しいdateオブジェクトを返す

timeクラス

timeクラスは、時刻を扱うためのクラスです。

timeクラスのインスタンスを作成するには、以下のようにします。

from datetime import time
t = time(13, 30)
import datetime
t = datetime.time(13, 30)
print(t)  # 13:30:00

これで、13時30分を表すtimeオブジェクトが作成されます。

timeオブジェクトには、以下のような属性があります。

  • hour: 時を表す整数
  • minute: 分を表す整数
  • second: 秒を表す整数
  • microsecond: マイクロ秒を表す整数

timeオブジェクトのメソッドには、以下のようなものがあります。

  • strftime(): 時刻を指定したフォーマットの文字列に変換する
  • replace(): 時、分、秒、マイクロ秒を置き換えた新しいtimeオブジェクトを返す

datetimeクラス

datetimeクラスは、日付と時刻を扱うためのクラスです。

datetimeクラスのインスタンスを作成するには、以下のようにします。

from datetime import datetime
dt = datetime(2023, 3, 26, 13, 30)
import datetime 
dt = datetime.datetime(2023, 3, 26, 13, 30)
print(dt)

これで、2023年3月26日13時30分を表すdatetimeオブジェクトが作成されます。

datetimeオブジェクトには、dateクラスとtimeクラスの属性とメソッドが使えるほか、以下のような属性があります。

  • timestamp(): Unix時間を表す整数を返す
  • date(): 日付部分を表すdateオブジェクトを返す
  • time(): 時刻部分を表すtimeオブジェクトを返す

datetimeオブジェクトのメソッドには、以下のようなものがあります。

  • strftime(): 日付と時刻を指定したフォーマットの文字列に変換する
  • replace(): 年、月、日、時、分、秒、マイクロ秒を置き換えた新しいdatetimeオブジェクトを返す

timedeltaクラス

timedeltaクラスは、2つの日付または時刻の差を表すためのクラスです。

timedeltaオブジェクトを作成するには、以下のようにします。

from datetime import timedelta
td = timedelta(days=1, hours=2, minutes=30)
print(td)  # 1 day, 2:30:00

これで、1日2時間30分を表すtimedeltaオブジェクトが作成されます。

timedeltaオブジェクトには、以下のような属性があります。

  • days: 日数を表す整数
  • seconds: 秒数を表す整数
  • microseconds: マイクロ秒数を表す整数
  • total_seconds(): 総秒数を表す浮動小数点数を返す

timedeltaオブジェクトは、datetimeオブジェクトとの演算が可能です。

たとえば、以下のように、ある日付から1週間後の日付を求めることができます。

from datetime import datetime, timedelta
d = datetime(2023, 3, 26)
td = timedelta(days=7)
new_date = d + td
print(new_date) #  2023-04-02 00:00:00

new_date = datetime(2023, 3, 26) + timedelta(days=7)
print(new_date) #  2023-04-02 00:00:00
import datetime

new_date = datetime.datetime(2023, 3, 26) + datetime.timedelta(days=7)
print(new_date) #  2023-04-02 00:00:00

このように、datetimeモジュールを使えば日付・時刻の情報を扱うことができます。

また、日時の差分を計算することもできます。

datetimeモジュールを使って、自分が必要な情報を取得して、計算してみると良いでしょう。

Python 掲載一覧

漢文家族には、下記のPythonの記事があります。

気になるところからチェックしてみてください。

プログラム学習に限界を感じていませんか?

よかったらシェアしてね!
  • URLをコピーしました!
目次