Python Datetime モジュールを使用 | プログラミング学習 初心者向け入門ガイド

ホーム › >>

Python Datetime モジュールを使用

記事掲載:https://laptrinhcanban.com/ja

Python で Date Time モジュールを使用するための手順。このレッスンの後、Python の datime モジュールとは何か、概念、および datetime モジュールに含まれるclass datetime、class date、class time、class timezoneなどのクラスの使用方法を理解できます。

PythonのDatetimeとは

Python の Datetime は、時間操作を実行するための特殊なモジュールです。Datetime モジュールには、さまざまな時間オブジェクトを操作するための多くのクラスが含まれています。次に例を示します。

  • class datetime日付と時刻の操作に使用されます。
  • class date日付の操作に使用
  • class time時間を操作するために使用
  • class timezoneタイムゾーンの操作に使用

上記のクラスでコンストラクターを使用してインスタンスを作成します。これは、タイミング情報を含む、クラスから作成された具体的なオブジェクトです。

pythoなどオブジェクト指向プログラミング言語では、クラスが家の設計図と見なされる場合、その設計図に基づいて構築されたすべての家はクラスのオブジェクトであり、特定の家はインスタンスと呼ばれます。土台を流したり、壁を作ったりするなど、家を建てる全工程をコンストラクターと呼びます。

datetime モジュールのクラスでは、コンストラクターでインスタンスを作成した後、クラスの組み込みメソッドとプロパティをこれらのインスタンスで直接使用して時間を計算します。

Python のDatetimeクラス 

Datetime クラスは、Python で日付と時刻の両方を操作するために使用されます。このクラスの一般的なコンストラクタは次のとおりです。一般式には多くのパラメーターがありますが、それらを使用するときにそれらのほとんどを省略できることに注意してください。

class datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)

そこで:

  • 年 : 年 (1 <= 年 <= 9999)
  • month : 月 (1 <= 月 <= 12)
  • day : day (1 <= 日 <= 月の日数
  • hour : 時間 (0 <= 時間 < 24)
  • 分 : 分 (0 <= 分 < 60)
  • second : 秒 (0 <= 秒 < 60)
  • microsecond : マイクロ秒 (0 <= マイクロ秒 < 1000000)
  • tzinfo : timezone クラスによって作成された、タイムゾーンを指定するために使用されるサブクラス。
  • fold : サマータイムを計算する場合は fold = 1、カウントしない場合は fold = 0。

デフォルトでは、作成されたインスタンスにはタイムゾーン情報が含まれていないことに注意してください。コンストラクターで tzinfo の値を指定した場合にのみ、タイム ゾーン情報がインスタンスに追加されます。

インスタンスがタイム ゾーンの値を持たない場合、それはnaiveオブジェクと呼ばれ、インスタンスがタイム ゾーン情報を持たない場合、それはawareオブジェクトと呼ばれます。

次の例のように日時クラスを使用する方法:

import datetime

#日付を含むインスタンスを作成
dt1 = datetime.datetime(2020, 7, 21)
print(dt1)
#>> 2020-07-21 00:00:00

#年、月、日、時、分、秒、マイクロ秒のインスタンスを作成
dt2 = datetime.datetime(2020, 7, 21, 6, 12, 30, 551)
print(dt2)
#>> 2020-07-21 06:12:30.000551


#タイムゾーンを指定してサブクラスを作成
hanoi_tz = datetime.timezone(datetime.timedelta(hours=7))

#上記のサブクラスを使用して、タイム ゾーンを含むインスタンスを作成
dt3 = datetime.datetime(2020, 7, 21, 6, 12, 30, 551, hanoi_tz)
print(dt3)
#>> 2020-07-21 06:12:30.000551+09:00

上記の dt1、dt2、dt3 の 3 つのインスタンスで、どれがnaiveオブジェクトでどれがawareオブジェクトか分かりますか?

Python のタイムゾーン

Pythonのtimezone クラスは、上記のように、datetime クラスを使用してインスタンスを作成するときにタイム ゾーンを指定するために使用される tzinfo クラスのサブクラスです。Python のタイムゾーンは UTC (協定世界時) に従って指定され、次のコンストラクターがあります。

class datetime.timezone(offset, name=None)

そこで、offset引数はタイム ゾーンを表すオブジェクトであり、timedelta クラスから作成されたインスタンスです。

Python の timedelta クラスは、タイムゾーン間の時差を表すクラスです。timedelta クラスには、次のコンストラクターがあります。

class datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

引数は、日 (日)、秒 (秒)、マイクロ秒 (マイクロ秒)、分 (分)、時間 (時間)、週 (週) を意味します。

timedelta を使用するときにタイム ゾーンを指定するにhoursは、timezone の値と等しい値を指定します。たとえば、ベトナムではhours=7、日本ではhours=9、ニューヨークではとなりhours=-5ます。
次の例のようにタイムゾーンを指定します。

import datetime

hanoi_tz = datetime.timezone(datetime.timedelta(hours=7))
print(hanoi_tz)
#>> UTC+07:00

tokyo_tz = datetime.timezone(datetime.timedelta(hours=9))
print(tokyo_tz)
#>> UTC+09:00

ny_tz = datetime.timezone(datetime.timedelta(hours=-4))
print(ny_tz)
#>> UTC-04:00

尚、UTC タイム ゾーンを0(軽度0、グリニッジ王立天文台グリニッジ、グリニッジ、ロンドン、イギリスを通過する時間) として指定する場合、次の例のようhours=0に指定するかtimezone.utc属性を使用するかです。

import datetime

utc_tz1 = datetime.timezone(datetime.timedelta(0))
print(utc_tz1)
#>> UTC

ny_tz2 = datetime.timezone.utc
print(utc_tz1)
#>> UTC

Python の日付

Python のDateクラスは、次のコンストラクターを使用して日付を操作するために使用されるクラスです。

class datetime.date(year, month, day)

そこで:

  • 年 : 年 ( 1 <= 年 <= 9999
  • 月: 月 (1<= 月<= 12)
  • day : day (1<= day <= その月の日数)

具体的には、次の例のように Python で日付を使用する方法:

import datetime

d = datetime.date(2020, 7, 21)
print(d)
#>> 2020-07-21

print(type(d))
#>># <class 'datetime.date'>

d_today = datetime.date.today()
print(d_today)
#>> 2021-05-06

日付クラスにはタイム ゾーン情報が含まれていないため、クラスから作成されたインスタンスは常にnaiveオブジェクトです。

Python での時間

Python のdatetimeクラスは、次のコンストラクターを使用して時間を操作するために使用されるクラスです。

class datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)

そこで:

  • hour : 時間 (0 <= 時間 < 24)
  • 分 : 分 (0 <= 分 < 60)
  • second : 秒 (0 <= 秒 < 60)
  • microsecond : マイクロ秒 (0 <= マイクロ秒 < 1000000)
  • tzinfo : timezone クラスによって作成された、タイムゾーンを指定するために使用されるサブクラス。
  • fold : サマータイムを計算する場合は fold = 1、カウントしない場合は fold = 0。

tzinfo (タイム ゾーン) 引数を指定または省略できます。インスタンスが単純なオブジェクトとして作成されるか、認識されているオブジェクトとして作成されるかは、これにも依存します。

Python で授業時間を使用する方法の具体例は次のとおりです。

import datetime

t1 = datetime.time(6, 12, 30, 551)
print(t1)
#>> 06:12:30.000551

hanoi_tz = datetime.timezone(datetime.timedelta(hours=7))
t2 = datetime.time(6, 12, 30, 551, hanoi_tz)
print(t2)
#>> 06:12:30.000551+07:00

まとめ

上記 Kiyoshi は、Python で datetime モジュールを使用する方法と、このモジュールに含まれるクラスの概念と使用法について説明しました。レッスンの内容をよりよく理解するために、今日の例を書き直す練習をしてください。

そして、次のレッスンで Python の知識についてさらに学びましょう。

URL Link

https://laptrinhcanban.com/ja/python/nhap-mon-lap-trinh-python/datetime-trong-python/datetime-trong-python-la-gi/

この記事は役立つと思ったらいいね!とシェアをお願いします
">

ホーム  › >>

Profile
きよしです!笑

Author: Kiyoshi (Chis Thanh)

Kiyoshi was a former international student in Japan. After graduating from Toyama University in 2017, Kiyoshi is currently working as a BrSE in Tokyo, Japan.