以下の内容はhttps://pydocument.hatenablog.com/entry/2023/04/15/224316より取得しました。


Pythonのdatetimeモジュールによる日付・時間処理(取得、フォーマット、変換、計算)

Pythonで日付や時間の処理を行うには、標準ライブラリのdatetimeモジュールを使用します。このモジュールには、日付や時間を扱うためのクラスや、日付・時間の計算、フォーマット変換を行うためのメソッドが定義されています。datetimeモジュールはPythonに標準で組み込まれているため、追加のインストールは不要です。

datetimeモジュールのインポート

datetimeモジュールを使用するには、まず以下のようにインポートします。

import datetime

現在の日時を取得する

現在の日時を取得するには、datetime.now()を使用します。

import datetime

now = datetime.datetime.now()
print(now)

datetime.datetime.now()は、現在の日時を表すdatetimeオブジェクトを返します。このオブジェクトには、年、月、日、時、分、秒、マイクロ秒の情報が含まれています。 実行結果は次のようになります。(マイクロ秒は実行環境によって異なります)

2024-05-08 10:30:15.123456

日時を指定してdatetimeオブジェクトを作成する

特定の日時を表すdatetimeオブジェクトを作成するには、datetimeクラスのコンストラクタに年、月、日、時、分、秒などの引数を渡します。

import datetime

date = datetime.datetime(2023, 4, 15, 14, 30, 0)
print(date)

実行結果:

2023-04-15 14:30:00

年月日のみを指定し、時分秒を省略した場合は、00:00:00として扱われます。

日付や時間のフォーマットを変換する

datetimeオブジェクトを特定の書式で文字列に変換するには、strftime()メソッドを使用します。strftime()メソッドには、フォーマット指定子を含む文字列を渡します。

主なフォーマット指定子は以下のとおりです。

指定子 説明
%Y 西暦(4桁) 2023
%m 月(0埋め2桁) 04
%d 日(0埋め2桁) 15
%H 時(24時間表記、0埋め2桁) 14
%M 分(0埋め2桁) 30
%S 秒(0埋め2桁) 00
%f マイクロ秒(6桁) 123456
%a 曜日(短縮形) Sat
%A 曜日(完全形) Saturday
%b 月名(短縮形) Apr
%B 月名(完全形) April
%y 西暦(下2桁) 23

strftime()を使って、datetimeオブジェクトを様々なフォーマットの文字列に変換する例を示します。 以下の例の、datetime.datetime.now()は現在時刻を取得します。

import datetime

now = datetime.datetime.now()

# 例1:YYYY年MM月DD日 HH時MM分SS秒
formatted1 = now.strftime("%Y年%m月%d日 %H時%M分%S秒")
print(formatted1)

# 例2:YYYY/MM/DD (曜日)
formatted2 = now.strftime("%Y/%m/%d (%A)")
print(formatted2)

# 例3:YY/MM/DD
formatted3 = now.strftime("%y/%m/%d")
print(formatted3)

# 例4: HH:MM:SS.ffffff
formatted4 = now.strftime("%H:%M:%S.%f")
print(formatted4)

実行結果(例):

2024年05月08日 10時48分37秒
2024/05/08 (Wednesday)
24/05/08
10:48:37.446251

文字列からdatetimeオブジェクトを作成する

strptime()メソッドを使うと、特定の書式で記述された日付や時刻の文字列から、datetimeオブジェクトを作成できます。strptime()メソッドは、第1引数に日付や時刻を表す文字列、第2引数にその文字列のフォーマットを指定します。strptime()メソッドは、strftime()メソッドと逆の処理を行うと考えるとわかりやすいです。

import datetime

date_string = "2023-04-15 14:30:00"
format_string = "%Y-%m-%d %H:%M:%S"

date_object = datetime.datetime.strptime(date_string, format_string)
print(date_object)

実行結果:

2023-04-15 14:30:00

timedeltaオブジェクトによる日付・時間の計算

datetimeモジュールには、時間差を表すtimedeltaオブジェクトもあります。timedeltaオブジェクトを使用すると、2つの日付や時間の差を計算したり、特定の日時から一定時間後(または前)の日時を求めたりできます。

timedeltaオブジェクトは、days, seconds, microsecondsなどの属性を持ち、それぞれ日単位、秒単位、マイクロ秒単位での時間差にアクセスできます。

import datetime

# 1週間後の日付を取得する
now = datetime.datetime.now()
one_week_later = now + datetime.timedelta(weeks=1)
print(one_week_later)

# 10日前の日付を取得する
ten_days_ago = now - datetime.timedelta(days=10)
print(ten_days_ago)

# 2つの日付の差を計算する
date1 = datetime.datetime(2023, 4, 1)
date2 = datetime.datetime(2023, 4, 15)
difference = date2 - date1
print(difference)
print(difference.days)  # 日数のみを取得
print(difference.total_seconds())  # 秒数で取得

実行結果(例):

2024-05-15 10:51:34.521795
2024-04-28 10:51:34.521795
14 days, 0:00:00
14
1209600.0

まとめ

Pythondatetimeモジュールは、日付や時間の取得、フォーマット変換、計算などを行うための機能を提供します。時系列データの処理などでは、日付や時間を扱う処理を実装する処理は多く、datetimeモジュールを使いこなすことが重要です。

pydocument.hatenablog.com

[PR]

click.linksynergy.com

click.linksynergy.com




以上の内容はhttps://pydocument.hatenablog.com/entry/2023/04/15/224316より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14