[Python] 261 subprocessモジュール1 日付を出力

[macOS Catalina 10.15.7]

Bashのコマンドで日付を出力させてみました。

今日の日付は特に問題ないですが、3日後の書き方でドハマりしました。

とりあえず出力できましたが、他にスマートな書き方がないのであればこの使い方ではBash&macOSは却下です。

Zshにすれば普通になるのでしょうか。

import subprocess
from subprocess import PIPE
import datetime

# 今日の日付 Bash
com_date = subprocess.run("date +%y%m%d", shell=True, stdout=PIPE, stderr=PIPE, text=True)
date = com_date.stdout

print(date)

# 今日の日付 Python
date_today = datetime.date.today()
date_today_str = date_today.strftime('%y%m%d')

print(date_today_str)

# 3日後の日付 Bash 時差+9-72=-63 このスクリプトは可読性低い
com_date_3 = subprocess.run("env TZ=JST-63 date +%y%m%d", shell=True, stdout=PIPE, stderr=PIPE, text=True)
date_3 = com_date_3.stdout

print(f'date_3 {date_3}')

# 3日後の日付 Python
days3 = datetime.timedelta(days = 3)
date_days3 = date_today + days3
date_days3_str = date_days3.strftime('%y%m%d')

print(f'date_days3_str {date_days3_str}')
--------------------------------------------------

出力
--------------------------------------------------
210527
210527
date_3 210530
date_days3_str 210530