Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで日付からtimedelta(タイムデルタ)を引く方法をわかりやすく解説

Pythonでは、datetimeモジュールのtimedeltaオブジェクトを使うことで、日付から特定の時間を簡単に引くことができます。手順はシンプルで、まず引きたい時間の長さを指定してtimedeltaオブジェクトを作成し、それを日付から減算するだけです。

基本的な使い方:1日前の日付を求める

以下の例では、今日の日付から1日分を引いて「昨日の日付」を計算しています。

from datetime import datetime
from datetime import timedelta

today = datetime.today()
yesterday = today - timedelta(days=1)

print(today)
print()
print(yesterday)

実行結果

このコードを実行すると、次のような出力が得られます。

2017-12-29 12:28:06.531791

2017-12-28 12:28:06.531791

todayの日付からちょうど1日前の日付が取得できていることが確認できます。

timedeltaで指定できる時間の単位

timedeltaオブジェクトでは、days以外にも以下のような引数を使って時間を指定できます。

  • weeks:週
  • days:日
  • hours:時間
  • minutes:分
  • seconds:秒
  • milliseconds:ミリ秒
  • microseconds:マイクロ秒

例えば、3時間前の時刻を求めたい場合は today - timedelta(hours=3)、2週間前の日付なら today - timedelta(weeks=2) のように記述します。

月や年を扱いたい場合の注意点

なお、timedeltaには「月」や「年」の単位は用意されていません。これは月の日数や年の日数が一定ではないためです。月単位・年単位の日付計算を行いたい場合は、サードパーティ製ライブラリのdateutilに含まれるrelativedeltaを使用するのが一般的です。

from datetime import datetime
from dateutil.relativedelta import relativedelta

today = datetime.today()
one_year_ago = today - relativedelta(years=1)
one_month_ago = today - relativedelta(months=1)

print(one_year_ago)
print(one_month_ago)

このように、日数・時間単位の計算にはtimedelta、月・年単位の計算にはrelativedeltaと使い分けることで、Pythonでの日付操作を柔軟に行えます。

  1. 【初心者向け】Pythonでリストから要素を削除する4つの方法|pop()・remove()・del・clear()の使い方

    Pythonのリスト(list)は線形データ構造の一つで、要素が連続したメモリ領域に格納され、各要素にはインデックスを使ってアクセスできます。 プログラミングをしていると、リストから特定の要素を削除したい場面によく出会います。Pythonにはそのための組み込み機能がいくつか用意されており、目的に応じて使い分けることが大切です。この記事では、代表的な4つの方法「pop()」「remove()」「del」「clear()」をコード例とともに解説します。 1. pop():インデックスを指定して削除する pop() は、引数として渡したインデックス位置にある要素を削除します。さらに、削除された要素を

  2. 【Python】Tkinterでラベルのテキストを削除する方法をわかりやすく解説

    Tkinterは、PythonでGUIベースのアプリケーションを作成・開発するための標準ライブラリです。この記事では、何らかのテキストが表示されているラベルから、そのテキストを削除する方法を解説します。 ラベルからテキストを削除するには、ラベルの表示を切り替えるトリガーとして機能するボタンを作成します。具体的には、config()メソッドを使ってラベルのtext属性を空の文字列に書き換えます。 サンプルコード # Tkinterライブラリをインポート from tkinter import * # tkinterフレームのインスタンスを作成 win = Tk() # ウィンドウのサイズを