Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのstrftimeで「8月5日(Aug 5th)」のように日付を表示する方法


Pythonのstrftime()関数には、「1st」「2nd」「3rd」「4th」のような序数接尾辞(st・nd・rd・th)を出力するための書式指定子(ディレクティブ)は用意されていません。そのため、strftime()だけでは「Aug 5th」のような日付表記を直接生成することはできません。

そこで、日にちに応じて適切な接尾辞を返す独自の関数を作成し、その結果を書式文字列と組み合わせるのが一般的な解決策です。

サンプルコード

from datetime import datetime

now = datetime.now()

def suffix(day):
    if 4 <= day <= 20 or 24 <= day <= 30:
        return "th"
    else:
        return ["st", "nd", "rd"][day % 10 - 1]

my_date = now.strftime("%b %d") + suffix(now.day)
print(my_date)

実行結果

Jan 15th

英語の慣習では、11日〜13日は例外的にすべて「th」となるため、上記のコードでは4〜20日および24〜30日を「th」にしています。それ以外の日は、1の位の数字に応じて「st」(1・21・31日)、「nd」(2・22日)、「rd」(3・23日)が選ばれます。

補足:ゼロ埋めを避けて「Aug 5th」と表示したい場合

%dは常に2桁の日付(例:05)を出力します。ゼロを付けずに表示したい場合は、以下のいずれかの方法を使用します。

  • Linux / macOS:%-d を使用
  • Windows:%#d を使用
  • 環境に依存しない方法:日を文字列に変換して連結する
# どの環境でも動く書き方
my_date = now.strftime("%b") + " " + str(now.day) + suffix(now.day)
print(my_date)  # 出力例: Aug 5th
  1. Pythonのcv2(OpenCV)で画像を表示する方法をわかりやすく解説

    PythonのOpenCV(cv2)を使えば、数行のコードで画像ファイルを読み込み、画面に表示することができます。ここでは、画像を読み込んで表示するための基本的な手順と、各関数の役割について解説します。 画像を表示するための基本手順 cv2で画像を読み込み・表示するには、主に以下のステップを実行します。 cv2.imread():ファイルから画像を読み込みます。 cv2.imshow():指定した名前のウィンドウに画像を表示します。 cv2.waitKey():キーが押されるまでプログラムを待機させます。 cv2.destroyAllWindows():開いているすべてのHighGUIウィン

  2. Pythonのmatplotlibで積み上げ棒グラフを作成・表示する方法

    Matplotlibは、Pythonで最も広く使われているデータ可視化ライブラリの一つです。データの可視化は、数値を一つずつ確認したり複雑な計算を行ったりすることなく、データ全体の傾向や特徴を直感的に把握するために欠かせないステップです。また、定量的な洞察を効果的に伝える手段としても非常に有用です。 Matplotlibは、データをもとに2次元のグラフやプロットを作成するために使用されます。オブジェクト指向のAPIを備えており、作成したグラフをPythonアプリケーションに組み込むことも可能です。IPythonシェル、Jupyter Notebook、Spyder IDEなど、さまざまな環境で