2016-03-29 14 views
3

Django şablonlarında yerelleştirilmiş bir tarih elde etmek için sorun yaşıyorum.Belirli bir biçimi kullanarak Django şablonunda yerelleştirilmiş bir tarih nasıl edinilir?

benim yapılandırma dosyasında bu var:

LOCALE_NAME ='es_VE' 

LANGUAGE_CODE = 'es-ve' 

TIME_ZONE = 'America/Caracas' 

USE_I18N = True 

USE_L10N = True 

USE_TZ = True 

Ben işlemek istediğiniz tarih edilir: mydate=2016-03-21 23:59:59.999999-04:30

Bu kod {{mydate|date:"d/m/Y"}}"21/03/2016"

ve sürdüğü Bu bir {{mydate|localize}}, "22 de Marzo de 2016 a las 04:29" (22/03/2016) 'de gösterilmiştir.

Yerel filtre filtresinin sonucunu, tarihin filtre biçimini kullanarak almak istiyorum.

Bunu başarmanın bir yolu var mı?

cevap

1

: Ben "22/03/2016"

gösterir {{mydate|datedate}} ne zaman Yani

@register.filter 
@stringfilter 
def datedate(value,format="%d/%m/%Y"): 
    try: 
     return parse_datetime(value).strftime(format) 
    except Exception as e: 
     return "" 

Yardımlarınız için hepinize teşekkür ederim.

1

Doğru anlıyorsam, yerelleştirilmiş bir özel tarih biçimi istiyorsunuz. Django'nun belgelerinin sizin için bir şeyleri vardır: Creating custom format files

+0

Tarih filtresi saat dilimini farkında hale getirmeye ne dersiniz ?, bu mümkün mü? –

+0

Zaman dilimi ile biliniyorsa, datetime nesnesiyle ilişkili zaman dilimini görüntülemek istediğinizde, https://docs.djangoproject.com/en/1.9/ref/settings/#datetime-format ve https: // docs .djangoproject.com/tr/1.9/ref/templates/builtins/# std: templatefilter-date Saat dilimi biçimini özelleştiremezsiniz, böylece istediğiniz çıktıyı almak için kendi özel filtrenizi kodlamanız gerekebilir. . –

+0

22/03/2016 tarihini göstermek için {{mydate | date: "d/m/Y"}} istedim, özel bir filtrede de düşünüyordum, ancak yerleşik bir yol olup olmadığını öğrenmek istedim. –

2

ISO 8601 biçim tarihi istiyor gibi görünüyor.

Django'nun tarih filtresini, oluşturmak için bağımsız değişken olarak 'c' ile kullanabilirsiniz.

{{ mydate|date:"c" }} 

Devamı yaklaşık bir özel şablon filtre kullanarak erdi date filter