この記事ではPythonの日付処理で使われるdatetimeモジュールとtimeモジュールについて解説していきます。
datetimeモジュールには、date、time、datetime、timedeltaのモジュールがあるのでそれぞれ解説していきます。
datetimeモジュール
date
・Datetime.dateオブジェクトはdatetime.date.today()で今日の日付を返します。.weekday()で曜日を数字で返します。属性もyear,month,dayが使用できそれぞれの情報を取得できます。
from datetime import date, time, datetime, timedelta
# 現在の日付取得
today = date.today()
# >>> 2024-11-23
# 曜日取得(月曜0~日曜6)
weekday = date.weekday(today)
# >>> 5
# ISOフォーマットで取得
isoformat = date.isoformat(today)
# >>> 2024-11-23
# 任意のフォーマットで取得
strftime = date.strftime(today, "%Y/%m/%d")
# >>> 2024/11/23
time
・Datetime.timeオブジェクトは、datetime.time(hour,minute,second)で時刻を指定できます。属性として、hour,mintute,secondを取得できます。
# 時刻設定
now = time(8, 52, 00)
# >>> 08:52:00
# 時間取得
hour = now.hour
# >>> 8
# 分取得
minute = now.minute
# >>> 52
# 秒取得
second = now.second
# >>> 0
# 任意のフォーマットで取得
strftime=time.strftime(now,'%H-%M-%S')
# >>> 08-52-00
datetime
・datetime.datetimeオブジェクトは、日付も日時も取得できます。today(),now()で現在の日時を取得できます。
・.strftime(‘%Y%M%D%H%M%S’)などでフォーマットを指定して出力することも可能です。
# 現在の日付取得
today = datetime.today()
# >>> 2024-11-23 08:39:14.939844
# 現在の時刻取得
now = datetime.now()
# >>> 2024-11-23 08:39:14.939844
# 任意のフォーマットで取得
strftime=datetime.strftime(today,"%Y年%m月%d日%H時%M分%S秒")
# >>> 2024年11月23日08時39分14秒
timedelta
# 日時の差を取得
week = timedelta(days=7)
today = datetime.today()
print(today + week)
# >>> 2024-11-30 08:39:51.432517
timeモジュール
timeモジュールではエポック1970年1月1日からの経過時間を取得します。localtime()で現地時刻を取得し、gmtime()で世界標準時間を取得します。
time.sleep(5)でプログラムの実行を待機させることができます。
import time
# エポック(1970年1月1日からの秒数)
current_time=time.time()
# >>> 1732418336.4546468
# 日本時間の取得
ltime=time.localtime()
print(time.strftime("%Y-%m-%d-%H:%M",ltime))
# >>> 2024-11-24-12:19
# 世界標準時間の取得
gtime=time.gmtime()
print(time.strftime("%Y-%m-%d-%H:%M",gtime))
# >>> 2024-11-24-03:19
# 処理時間を5秒遅らせる
time.sleep(5)
print('5秒経過')