strftimeの%aで曜日を出力するのはやめた

localeを使ってみたりいろいろと試してみたけれど、無理にstrftimeの%aで曜日を漢字で出力するのは今ひとつだった。

ディストリビューションによって挙動が変わったり、OSのメジャーアップデートで文字化けしてみたり。それぞれに事情はいろいろあって、単にバグだったり、必要なパッケージが変わってたりと、まあ仕方ないかなあと思うことも少なくない。

ああでもないこうでもないと、忘れてしまっても問題ない方法を考えてみた。これでいいのだ。

#!/usr/bin/env python
# coding: utf-8
import datetime
WEEKDAY = ('月','火','水','木','金','土','日')
print(WEEKDAY[datetime.datetime.today().weekday()])


僕の至った結論は、自前でやりなはれ。でした。

具体的には、strftimeをあちこちで使うのはやめてformat_date的な共通関数を使うのが吉。

#!/usr/bin/env python
#coding: utf-8
import datetime
def format_date(date):
    """ datetime.dateを受け取って表示用にフォーマットして返す """
    __WEEKDAY = ('月','火','水','木','金','土','日')
    return "%d年%d月%d日(%s)" % (date.year, date.month, date.day, __WEEKDAY[date.weekday()])

if __name__=='__main__':
    print(format_date(datetime.date.today()))

こんなことを考え過ぎて時間を浪費しないように、自分のために。