Python dateutilモジュール


Pythonには、日付と時刻をシンプルで複雑な方法から操作するために使用される内蔵datetimeモジュールがあります.これは多くのユースケースのために十分かもしれませんが、dateutilモジュールはこれに強力な拡張を提供します.いくつかのクールな機能は、我々が探索することです:
相対的なデルタ(次の月曜日、次の週、前の月の最後の週、次の5年など)の
  • のコンピューティング.🤔
  • 2つの与えられた日付および/またはdatetimeオブジェクト間の相対デルタの
  • コンピューティング.🤯
  • 始める✊
    dateutilはPIPからPPIを使用してインストールできます:
    pip install python-dateutil
    
    ...またはPython 3の場合
    pip3 install python-dateutil
    
    ダイビング🙌
    若干の旅行時間を加えてください:
    from datetime import *
    from dateutil.relativedelta import *
    import calendar
    
    今すぐ日付と時刻を取得します.
    NOW = datetime.now()
    print(NOW)
    # 2019-12-09 11:32:20.295752
    
    ...またはちょうど日付
    TODAY = date.today()
    print(TODAY)
    # 2019-12-09
    
    来週着く
    next_week = TODAY + relativedelta(weeks=+1)
    print(next_week)
    # 2019-12-16 
    
    ...または来月
    next_month = TODAY + relativedelta(months=+1)
    print(next_month)
    # 2020-01-09 
    
    私たちは、それらを結合することもできます(来月、1週間).
    next_month_plus_one_week = TODAY + relativedelta(months=+1, weeks=+1)
    print(next_month_plus_one_week)
    # 2020-01-16 
    
    ... そして、さらに時間を追加する(来月1時プラス1 PM):
    added_time = TODAY + relativedelta(months=+1, weeks=+1, hour=13)
    print(added_time)
    # 2020-01-16 13:00:00
    
    もちろん、後方に行くことができます.
    last_week = TODAY + relativedelta(weeks=-1)
    print(last_week)
    # 2019-12-02
    
    last_month = TODAY + relativedelta(months=-1)
    print(last_month)
    # 2019-11-09
    
    ... そして、私たちは物事を1年前の1ヶ月前にミックスすることができます.
    one_month_before_one_year = TODAY + relativedelta(years=+1, months=-1)
    print(one_month_before_one_year)
    # 2020-11-09
    
    BTWを1ヶ月追加すると、月の境界線を越えることはありません.
    print(date(2020, 1, 27) + relativedelta(months=+1))
    # 2020-02-27
    print(date(2020, 1, 31) + relativedelta(months=+1))
    # 2020-02-29 (2020 is a leap year! #todayilearned)
    print(date(2020, 1, 31) + relativedelta(months=+2))
    #2020-03-31
    
    ...この論理は、閏年においても何年も当てはまります.
    # Note that 2020 is a leap year
    print(date(2020, 2, 28) + relativedelta(years=+1))
    # 2021-02-28
    print(date(2020, 2, 29) + relativedelta(years=+1))
    # 2021-02-28
    
    # Subtracting 1 year from Feb 29 2020 will print Feb 28 2019
    print(date(2020, 2, 29) + relativedelta(years=-1))
    # 2019-02-28
    
    また、weekdaysを利用できます.
    # Note that TODAY is a Monday
    this_TGIF = TODAY + relativedelta(weekday=FR)
    print(this_TGIF)
    # 2019-12-13
    
    # Tuesday of next week, not tomorrow
    next_tuesday = TODAY + relativedelta(weeks=+1, weekday=TU)
    print(next_tuesday)
    #2019-12-17
    
    # Making use of the calendar import
    next_tuesday_calendar = TODAY + relativedelta(weeks=+1, weekday=calendar.TUESDAY)
    print(next_tuesday_calendar)
    # 2019-12-17
    
    また、yeardayを使用して日付を見つけることもできます.
    # Get the 237th day of 2020
    print(date(2020, 1, 1) + relativedelta(yearday=237))
    # 2020-08-24
    
    つの日付の違いを得ることはとても簡単です.
    # Setting the date
    # year - month - day - hour - minutes
    nasa_birthday = datetime(1958, 7, 29, 0, 0)
    age_of_nasa = relativedelta(TODAY, nasa_birthday)
    print(age_of_nasa)
    # relativedelta(years=+61, months=+4, days=+10)
    
    ... また、書式設定も簡単です
    print('It has been {} years, {} months and {} days since the birth of NASA 🚀'
          .format(age_of_nasa.years,
                  age_of_nasa.months,
                  age_of_nasa.days,))
    #It has been 61 years, 4 months and 10 days since the birth of NASA 🚀
    
    ソース
    🐍 https://dateutil.readthedocs.io/en/stable/
    🚀 https://en.wikipedia.org/wiki/NASA