Pythonではdatetimeモジュールのdateとtimeに紹介します。
この記事では、dateとtimeの違いは何か?datetimeからの変換方法をサンプルコードを交えて説明していきます。
※今回扱う time は datetimeモジュールのtimeオブジェクトです。
参考:datetime
目次
dateとは?
dateオブジェクトは日付を表します。 主に扱うインスタンス属性は以下になります。
- year:年
- month:月
- day:日
from datetime import date
# 今日の日付所得
date.today()
# datetime.dateを作る
date(year,month,day)
# 年の取得
datetime.dateオブジェクト.year
# 月の取得
datetime.dateオブジェクト.month
# 日の取得
datetime.dateオブジェクト.day
以下がサンプルコードになります。
from datetime import date
dt_today = date.today()
dt_arange = date(2019, 5, 24)
print(dt_today:,dt_today)
# dt_today: 2020-05-26
print(dt_today:のタイプ:, type(dt_today))
# dt_today:のタイプ: <class 'datetime.date'>
print(dt_arange:, dt_arange)
# dt_arange: 2019-05-24
print(dt_arange:のタイプ:, type(dt_arange))
# dt_arange:のタイプ: <class 'datetime.date'>
print(dt_today.year:, dt_today.year)
# dt_today.year: 2020
print(dt_today.month:, dt_today.month)
# dt_today.month: 5
print(dt_today.day:, dt_today.day)
# dt_today.day: 26
datetimeからdateへ変換(dateオブジェクトを取得)
datetimeインスタンスのdate属性を変換する方法は以下になります。
※正確にdateオブジェクトを取得になります。
from datetime import datetime, date
datetimeオブジェクト.date()
サンプルコードは以下になります。
from datetime import datetime, date
dt_now = datetime.now()
date_now = dt_now.date()
dt_one = datetime(2019, 5, 24)
date_one = dt_one.date()
print(dt_now:, dt_now)
# dt_now: 2020-05-26 14:26:39.133245
print(dt_nowのタイプ:, type(dt_now))
# dt_nowのタイプ: <class 'datetime.datetime'>
print(date_now:, date_now)
# date_now: 2020-05-26
print(date_nowのタイプ:, type(date_now))
# date_nowのタイプ: <class 'datetime.date'>
print(dt_one:, dt_one)
# dt_one: 2019-05-24 00:00:00
print(dt_oneのタイプ:, type(dt_one))
# dt_oneのタイプ: <class 'datetime.datetime'>
print(date_one:,date_one)
# date_one: 2019-05-24
print(date_oneのタイプ:,type(date_one))
# date_oneのタイプ: <class 'datetime.date'>
timeとは?
timeオブジェクトは日時を表します。 主に扱うインスタンス属性は以下になります。
- hour:時
- minute:分
- second:秒
- microosecond:マイクロ秒
- tzinfo:タイムゾーン
from datetime import time
# datetime.timeを作る
time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None)
# 時の取得
datetime.timeオブジェクト.hour
# 分の取得
datetime.timeオブジェクト.minute
# 秒の取得
datetime.timeオブジェクト.second
# マイクロ秒の取得
datetime.timeオブジェクト.microsecond
以下がサンプルコードになります。
from datetime import time
time_arange = time(1, 30, 40, 50)
print(time_arange:, time_arange)
# time_arange: 01:30:40.000050
print(time_arange:のタイプ:, type(time_arange))
# time_arange:のタイプ: <class 'datetime.time'>
print(time_arange.hour:, time_arange.hour)
# time_arange.hour: 1
print(time_arange.minute:, time_arange.minute)
# time_arange.minute: 30
print(time_arange.second:, time_arange.second)
# time_arange.second: 40
print(time_arange.microsecond:, time_arange.microsecond)
# time_arange.microsecond: 50
datetimeからtimeへ変換(timeオブジェクトを取得)
datetimeインスタンスのtime属性を変換する方法は以下になります。
※正確にtimeオブジェクトを取得になります。
from datetime import datetime, time
datetimeオブジェクト.time()
サンプルコードは以下になります。
from datetime import datetime, date
dt_now = datetime.now()
time_now = dt_now.time()
dt_one = datetime(2019, 5, 24, 12, 13, 14)
time_one = dt_one.date()
print(dt_now:, dt_now)
# dt_now: 2020-05-26 14:28:01.130671
print(dt_nowのタイプ:, type(dt_now))
# dt_nowのタイプ: <class 'datetime.datetime'>
print(time_now:, time_now)
# time_now: 14:28:01.130671
print(time_nowのタイプ:, type(time_now))
# time_nowのタイプ: <class 'datetime.time'>
print(dt_one:, dt_one)
# dt_one: 2019-05-24 12:13:14
print(dt_oneのタイプ:, type(dt_one))
# dt_oneのタイプ: <class 'datetime.datetime'>
print(time_one:,time_one)
# time_one: 2019-05-24
print(time_oneのタイプ:,type(time_one))
# time_oneのタイプ: <class 'datetime.date'>