Pythonのdateとtimeの違いとは?Datetimeからの変換方法を紹介

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'>
  • システム開発、アプリ開発
  • マッチングアプリ開発
  • インフラ構築支援等、なんでもご相談ください。
よかったらシェアしてね!
  • URLをコピーしました!
目次