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-26import 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:00import 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の記事があります。
気になるところからチェックしてみてください。
【Pythonの基本】
第1回 Pythonとは?
第2回 基本文法
第3回 変数とデータ型
【文字列】
第4回 文字列
【文字列関数とメソッド】
第7回 文字列の長さを調べる:len関数
【辞書型】
第9回 辞書型
第10回 辞書型(要素の情報の取得・要素の検索・辞書型のコピー・リスト型から辞書型を作成)
【制御構文】
第12回 if文
第13回 match文
第14回 for文
【日付と時刻】
第15回 日付と時刻 今ここ
第16回 文字の日付を日付型に変換する
第17回 日付型の日付を文字型の日付に変換する
【その他】
第18回 バージョンの確認方法
プログラム学習に限界を感じていませんか?


