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()))
こんなことを考え過ぎて時間を浪費しないように、自分のために。