今回は、Pythonのdatetimeモジュールに焦点を当てます。
この記事では、Pythonで日付構造を扱うためのメソッドやテクニックに特に注目します。
それでは、はじめましょう。
Python Datetime モジュールとは?
Python Datetimeモジュールは、Pythonで日付型のデータを扱えるようにするためのモジュールです。
Datetimeモジュールは、日付や日時の表現を扱うための様々なクラスで構成されています。
よく知られているように、Pythonは日付と時刻のための特定のデータ型を提供しません。
むしろ、日付と時刻を効果的に扱うために、datetimeモジュールをインポートして使用することができます。
この記事もチェック:Pythonでdatatimeモジュールを使って現在の日付と時刻を取得する方法
Python Datetime モジュールに関連するクラス
Python Datetimeモジュールには、日付と時刻の値を扱うための6つのクラスが含まれています。
Pythonでは、日付と時刻の式は実際にはオブジェクトとして扱われます。
したがって、以下のクラスは、これらの日付オブジェクトを扱うために登場します。
- 日付
- 時刻
- datetime
- タイムデルタ
- tzinfo
- タイムゾーン
では、上記の各クラスとその機能を詳しく理解しましょう。
この記事もチェック:Pythonのpytzモジュールを使ってタイムゾーンを変更する方法
1. datetime.dateクラス
datetimeモジュールのdateクラスは、日付オブジェクトの情報を日付形式 – YYYY:MM:DDで表します。
構文は以下の通りです。
datetime.date(year,month,day) |
Dateクラスが提供する様々な関数を理解しましょう。
from datetime import date
dte = date( 2000 , 12 , 27 )
print (dte)
|
上の例では、date() 関数
を使って、渡された日、月、年の値を標準的な日付フォーマットに変換しています。
結果は以下の通りです。
結果は以下の通りです。
2000 - 12 - 27
|
この例では、date.today() 関数
を使って、システムから現在の日付を取得しています。
さらに、以下のように現在の日、年、月の値を出力しています。
from datetime import date
dte = date.today()
print ( "Present date: " ,dte)
print ( "Present year: " ,dte.year)
print ( "Present month: " ,dte.month)
print ( "Present day: " ,dte.day)
|
結果は以下の通りです。
Present date: 2020 - 07 - 14
Present year: 2020
Present month: 7
Present day: 14
|
2. datetime.timeクラス
timeクラスは、日付表現や日付オブジェクトとは独立した時間値に関する情報を提供します。
したがって、datetimeモジュールのtimeクラスを使って、標準または正規化されたタイムスタンプの形で時間値にアクセスすることができます。
構文は以下の通りです。
datetime.time(hour, min ,sec)
|
例えば、以下の様になります。
from datetime import time
tym = time( 12 , 14 , 45 )
print ( "Timestamp: " ,tym)
|
結果は、以下の通りになります。
Timestamp: 12 : 14 : 45
|
この例では、以下のように time() 関数
を使って時、分、秒の値にアクセスしています。
from datetime import time
tym = time( 12 , 14 , 45 )
print ( "Hour value from the timestamp: " ,tym.hour)
print ( "Minute value from the timestamp: " ,tym.minute)
print ( "Second value from the timestamp: " ,tym.second)
|
結果は以下の通りです。
Hour value from the timestamp: 12
Minute value from the timestamp: 14
Second value from the timestamp: 45
|
3. datetime.datetimeクラス
datetimeクラスは、日付だけでなく時間の値についての情報も与えてくれます。
したがって、このクラスの関数を用いて、時刻の値だけでなく、日付全体を表現します。
構文は以下の通りです。
datetime.datetime(year,month,day,hour, min ,sec,microsecond)
|
以下の例では、必要な引数を渡して、datetimeクラスの datetime() 関数
を実装しています。
from datetime import datetime
dte_tym = datetime( 2020 , 3 , 12 , 5 , 45 , 25 , 243245 )
print (dte_tym)
|
結果は以下の通りです。
2020 - 03 - 12 05 : 45 : 25.243245
|
4. datetime.timedelta クラス
Python の DateTime モジュールは、すべての種類の日付に関連する操作を扱うために timedelta クラスを提供します。
構文は以下の通りです。
datetime.timedelta(days,hours,weeks,minutes,seconds) |
timedelta() 関数は、データに対して指定された操作を行った後の日付を返します。
from datetime import datetime, timedelta
dte = datetime( 2020 , 12 , 9 )
updated_tym = dte + timedelta(days = 2 ,weeks = 4 )
print ( "Updated datetime: " ,updated_tym)
|
上の例では、あらかじめ定義された日付の値に日数と週数を追加しています。
結果は以下の通りです。
Updated datetime: 2021 - 01 - 08 00 : 00 : 00
|
加算とは別に、以下のように、datetime 式から特定の日付部分や時間の一部を減算して、日付の値を逆行させることもできます。
from datetime import datetime, timedelta
dte = datetime( 2020 , 12 , 9 )
updated_tym = dte - timedelta(days = 2 ,weeks = 4 )
print ( "Updated datetime: " ,updated_tym)
|
結果は、以下の通りになります。
Updated datetime: 2020 - 11 - 09 00 : 00 : 00
|
まとめ
ここまでで、このトピックは終了です。
このように、datetimeモジュールは様々な方法で日付と時刻を表現する上で重要な役割を担っています。
何か疑問があれば、お気軽にコメントください。