【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))
実行結果
休日