2017-09-05 3 views
1

私は認識しているdatetime-objectを持っており、認識可能なdatetime-stringを返したいと思います。私はPython:認識している日時から認識する日時文字列を取得する

obj.strftime("%e %b %Y %H:%M:%S") 

を行うときしかし、それは(TIME_ZONE -setting権が設定されていても)、UTCベースの文字列を返します。

ローカライズされた日時文字列を取得するにはどうすればよいですか?

編集:私はあなたのプロジェクト内のモジュールDATEFORMATを使用することができますジャンゴのタイムゾーンは

+2

[Python datetime strptime()とstrftime():タイムゾーン情報を保持する方法](https://stackoverflow.com/questions/14762518/python-datetime-strptime-and-strftime-how-to) -preserve-the-timezone-informat) – TheoretiCAL

+1

https://github.com/django/django/blob/master/django/utils/dateformat.py私はOPがdjangoで定義されたタイムゾーンを使用して解決策を期待していると思います – PRMoureu

+0

はいthatsの権利 –

答えて

2

私はlocaltime(obj)を使用していた:

localtime(obj).strftime("%e %b %Y %H:%M:%S") 

がうまく働きました。

1

を適用取得したい、それはあなたの設定からタイムゾーンを取得することができます:

from django.utils import dateformat 

timezoned_date = dateformat.DateFormat(obj).format('jS F Y H:i:s') 

はEDIT:

これは認識不能なdatetimeオブジェクトで正常に動作し、認識日のあるdjango.utils.timezone.localtimeを使用することをお勧めします。

+0

宣言されたタイムゾーンの代わりにUTCを返す –

+0

どうやってテストしましたか?私はdatetime.now()を生成してこれを試してみました。そして、ouptutは異なるタイムゾーンに応じてうまくいきました。 – PRMoureu

+0

@ J.B。申し訳ありませんが、私のテストが間違っていた、 'datetime.now()'は認識していません... – PRMoureu

関連する問題