Django'nın yerelleştirme Django şablonları ve formlar bağlamında çalışır ve Python'ın iç datetime temsillerine zinciri seyahat edemez: Eğer USE_L10N = True
ve bölge ile bir kullanıcı varsa Yani
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
girer ingilizce ondalık sistemde 10.45
anlamına gelecek şekilde yorumlanacaktır. Benzer şekilde, {{ value|date:"SHORT_DATE_FORMAT" }}
gibi bir şablon etiketinin çıktısı, kullanıcının bulunduğu yere göre değişecektir. Ancak, Python iç strftime('%c')
, Django'nun ayarlarına erişmez ve bunun yerine, üzerinde kurulu olduğu makinede ayarlanan yerel ayarlara karşılık gelir. Sen almak ve birlikte için yerel ayarları Python noktalarını değiştirebilirsiniz:
>>> 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'
Ya $LANG
değişken ortam ayarlayarak
.
Bu ayrıntılı yanıt için teşekkür ederiz. “Datetime” nin Django ile hiçbir ilgisi olmadığını fark ettim :) Şimdi, biçimlendirilmiş tarihlerin listesini JSON ile göndermem gerekirse, bu, kullanıcıların bulunduğu yere göre biçimlendirmenin en iyi yolu olacaktır. –
Bu, kullanıcının yerel ayarının farkında olduktan sonra JSON'u gerçekten yüklemeyi gerektirir. Bunu dene? https://docs.djangoproject.com/en/1.3/howto/i18n/ – Karmel
Yeni soru sordu [burada] (http://stackoverflow.com/questions/10802680/django-accessing-request-meta-data-from- üretim) –