Python バックエンド プログラム言語

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

こんにちは!TodoONadaの土門(@daikidomon)です。

Pythonではdatetimeモジュールのdatetimeに紹介します。

この記事では、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'>

関連記事

-Python, バックエンド, プログラム言語

Copyright© スタートアップIT企業社長のブログ , 2020 All Rights Reserved.