西暦と和暦の併記

  • やりたいこと
    • APIで取得した日付のdata(1962-11-18)を西暦和暦併記の型に変換したい
    • 例 1962-11-18を1962年(昭和37年)11月18日へ
  • 今までのやり方
    • numbersでファイルを開く(1962-11-18)
    • それをexcelにcut&paset (1962/11/18)
    • excelの書式をつかって、変換 書式/ユーザ定義/yyyy"年"(gggee"年")m"月"d"日"
    • 当時pythonのスキルがかなり低く、無理やり2つのソフトを組み合わせて、欲しい形式に変換していた。
    • 我ながらスマートでない
  • これをpythonだけて完結させたい
pip install japanera
bd = df['BirthDate'].to_string(index=False)  #dataframeの'BirthDate'に'1962-11-18'が入っている
year = int(bd[0:4])
month = int(bd[6:7])
day = int(bd[9:10])
era_date = EraDate(year, month, day)
bd = era_date.strftime("%Y年(%-K%-Y年)%m月%d日")

訂正 2023/8/4

  • bd='1979-10-15'のとき上記では、monthが0になってエラーになった。(何故?)
  • bardに教えてもらったところ、以下でうまくいく
import datetime
dt = datetime.datetime.strptime(bd, '%Y-%m-%d')
year = dt.year
month = dt.month
day = dt.day
era_date = EraDate(year, month, day)
bd = era_date.strftime("%Y年(%-K%-Y年)%m月%d日")
  • 参考サイト

qiita.com
zenn.dev