Django的本地化的Django模板和表單的背景下工作的,不能出行環比上漲Python的內部日期時間表示:如果你有USE_L10N = True
,並與該地區用戶
When using Django's formatting system, dates and numbers on templates
will be displayed using the format specified for the current locale.
...Django will also use localized formats when parsing data in forms.
所以FR
進入10,45
轉換成表格,這將被解釋爲英文十進制系統中的10.45
。同樣,模板標記{{ value|date:"SHORT_DATE_FORMAT" }}
的輸出將根據用戶的區域設置而有所不同。
但是,Python內部strftime('%c')
不能訪問Django的設置,而是指在安裝它的機器上設置的語言環境。你可以檢索和更改區域設置的Python分,外加:
>>> datetime.datetime.strptime('2012-05-30 15:30', '%Y-%m-%d %H:%M').strftime('%c')
'Wed May 30 15:30:00 2012'
>>> import locale
>>> locale.getlocale()
(None, None)
>>> locale.getdefaultlocale()
('en_US', 'UTF-8')
>>> locale.setlocale(locale.LC_ALL, "fr_FR.UTF-8")
'fr_FR.UTF-8'
>>> datetime.datetime.strptime('2012-05-30 15:30', '%Y-%m-%d %H:%M').strftime('%c')
'Mer 30 mai 15:30:00 2012'
或通過設置環境變量$LANG
。
謝謝你的詳細解答。我忘了注意'datetime'顯然與Django無關:)現在,如果我需要通過JSON發送格式化日期列表,這將根據用戶區域設置來格式化它的最佳方式? –
我想這將需要在知道用戶的語言環境後實際組裝JSON。嘗試這個? https://docs.djangoproject.com/en/1.3/howto/i18n/ – Karmel
新問題問[這裏](http://stackoverflow.com/questions/10802680/django-accessing-request-meta-data-from-生產) –