【Python】日付操作サンプル

2024年2月15日Python

日付操作のサンプル集


今日の日付を表示する

  • 今日の日付をyyyymmdd形式で表示する
  • strftime() は日付、時間を文字列へ変換する関数
from datetime import datetime

today = datetime.today().strftime('%Y%m%d')

print(today)

実行結果

20230726


昨日の日付を表示する

  • 日にちの加算で昨日の日付を表示する
from datetime import datetime
from datetime import timedelta

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

print(yesterday.strftime('%Y%m%d'))

today = datetime.today().strftime('%Y%m%d')

print(today)

実行結果

20230725


現在のUTC日付と時刻を表示する

from datetime import datetime

today_utc = datetime.utcnow()

print(today_utc)

実行結果

2023-07-26 12:50:43.751435


現在のエポック時間をyyyymmdd形式で表示する

from datetime import datetime

epoch_time = int(datetime.now().timestamp())
yyyymmdd = datetime.fromtimestamp(epoch_time).strftime('%Y%m%d')

print(yyyymmdd)

実行結果

20230726


先月末日を取得する

今日の年月日から今日の日数を引いて先月末日を求める

from datetime import datetime
from datetime import timedelta

today = datetime.today()
last_month = today - timedelta(days=today.day)

print(today)
print(last_month.strftime('%Y%m%d'))

実行結果

2023-07-26 21:52:24.257933
20230630


calendar関数を使用して先月末日を取得する

補足

  • calendar.monthrange(year, month) は年、月を引数として、その月初の曜日と日数を返す関数
  • ここでは日数しか必要ないので[1]を指定して変数daysに格納している
import calendar
import datetime
from dateutil import relativedelta

today = datetime.datetime.today()
last_month = today - relativedelta.relativedelta(months=1)
days = calendar.monthrange(last_month.year, last_month.month)[1]
last_month_day = datetime.date(last_month.year, last_month.month, days)

print(last_month_day)

実行結果

2023-06-30


relativedeltaを使用して、先月同日・翌月同日を取得する

from datetime import datetime
from dateutil import relativedelta

today = datetime.today()
last_month = today - relativedelta.relativedelta(months=1)
next_month = today + relativedelta.relativedelta(months=1)

print(today)
print(last_month)
print(next_month)

実行結果

2023-07-26 21:54:01.927759
2023-06-26 21:54:01.927759
2023-08-26 21:54:01.927759


平日か休日かを判定する

補足

  • weekday() は月曜~日曜を0~6で返す関数
  • 返ってくる数字を調べて平日か休日かを判定する
  • strptime() は文字列から日付、時間へ変換する関数
from datetime import date
import datetime

def check_date(input_ymd):
    check_date = datetime.datetime.strptime(input_ymd, '%Y%m%d')

    yy = int(check_date.strftime('%Y'))
    mm = int(check_date.strftime('%m'))
    dd = int(check_date.strftime('%d'))

    if date(yy, mm, dd).weekday() < 5:
        date_result = '平日'
    else:
        date_result = '休日'

    return date_result

# --------------------
# メイン処理
# --------------------
input_ymd = '20230730'
print(check_date(input_ymd))

実行結果

休日

Python

Posted by junichi