2017-09-05 73 views
1

我有一個意識到的日期時間對象,並希望返回一個意識到的日期時間字符串。然而,當我做Python:獲知日期時間字符串從知道日期時間

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

它返回一個基於UTC的字符串(即使TIME_ZONE定形的是正確的設置)。

我怎樣才能得到一個本地化的日期時間字符串?

編輯:我想要的Django的時區得到應用

+2

[Python datetime strptime()和strftime():如何保留時區信息](https://stackoverflow.com/questions/14762518/python-datetime-strptime-and-strftime-how-to - 保留時區的信息) – TheoretiCAL

+1

https://github.com/django/django/blob/master/django/utils/dateformat.py我認爲OP期望使用django定義的時區的解決方案 – PRMoureu

+0

是的,這是正確的 –

回答

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') 

編輯:

這工作正常,但不知道datetime對象,更好地使用django.utils.timezone.localtime知道日期。

+0

仍然給UTC而不是宣佈的時區 –

+0

你是如何測試它的?我通過生成一個datetime.now()來試試這個,而根據不同的timzones,ouptut很好。 – PRMoureu

+0

@ J.B。對不起,我的測試錯了,'datetime.now()'不知道... – PRMoureu