djangoのpythonコード内で時間のフォーマットを取得する
djangoでローカライズされたフォーマットで時間の文字列を取得したい時は、
from django.utils.formats import date_format
をDateTimeFieldとかDateFieldと"DATETIME_FORMAT"を渡したりすれば文字列が返ってくるけど、時間があってない(l10nされてない)。 そんなときは、諦めてテンプレートがレンダーした結果を返してもらえばいい。
from django.template import Context, Template def get_datestr(datetime): t = Template("{{ date }}") c = Context({"date": datetime}) return t.render(c)
こうすれば、ローカライズされて時間も日本のだし、フォーマットも日本のになる。まぁローカライズの設定がちゃんとしていたらだけど。
ちなみにローカライズのフォーマットは
django.conf.locale.ja.formats
にある。 ちなみにちなみにこのフォーマットは普通のフォーマットじゃないみたい。 websocketやるとTemplateをconsumers内で使った方がいいんじゃないかとふと思った。 あと数日以内に完成するかなぁ