मैं डिफ़ॉल्ट Django दिनांक टेम्पलेट प्रारूप को कैसे बदल सकता हूं?


100

मेरे पास डेटाबेस में आईएसओ 8601 प्रारूप में तारीखें हैं %Y-%m-%d,। हालाँकि, जब तारीख को टेम्प्लेट में पास किया जाता है, तो वह कुछ इस तरह से सामने आती है Oct. 16, 2011

वहाँ एक रास्ता है कि मैं जो कुछ भी मैं चाहता हूँ प्रारूप में हेरफेर कर सकता है?

जवाबों:


56

मुझे यकीन नहीं है कि मैं सेटिंग फ़ाइल में कैसे
बदलूंगा

3
इसी तरह से आप हर दूसरे सेटिंग को बदलते हैं।
इग्नासियो वाज़क्वेज़-अब्राम्स

22
डॉक्स के लिए लिंक वास्तव में एक उत्तर नहीं है, इसलिए इसे डाउनवोट किया गया और मेडमन्स के उत्तर को बढ़ा दिया।
एरिक

275

अपने टेम्पलेट के भीतर, आप Django के dateफिल्टर का उपयोग कर सकते हैं । उदाहरण के लिए:

<p>Birthday: {{ birthday|date:"M d, Y" }}</p>

देता है:

जन्मदिन: 29 जनवरी, 1983

दिनांक फ़िल्टर डॉक्स में अधिक प्रारूपण उदाहरण ।


मुझे लगता है कि यह तभी काम करता है जब तारीख को डेटाइम ऑब्जेक्ट के रूप में प्रदान किया जाता है। क्या होगा अगर यह सिर्फ एक स्ट्रिंग है जिसे दृश्य से पारित किया गया है?
मोहम्मद शरीफ C

2
एक तारीख / समय युक्त एक मनमाने स्ट्रिंग के लिए, मैं शायद इसे दृश्य कोड में एक अजगर डेटाइम में पार्स करूँगा। (या पहले भी यदि संभव हो तो - जहाँ भी तारीख स्ट्रिंग पहले मेरे कोड में आती है।) लेकिन अगर आप वास्तव में अपने Django टेम्प्लेट में डेटासेट पास करने के लिए स्ट्रिंग्स का उपयोग करना चाहते हैं, तो यह उत्तर सहायक लगता है।
ध्यानमग्न

टेम्पलेट फ़ाइल में उपयोग करने के लिए उदाहरण के ऊपर सही।
विनोद पाटीदार

30

दोनों DATE_FORMATऔर सेट करेंUSE_L10N

Django 1.4.1 में पूरी साइट के लिए परिवर्तन करने के लिए:

DATE_FORMAT = "Y-m-d"

अपनी settings.pyफ़ाइल और संपादित करें:

USE_L10N = False

चूंकि l10n ओवरराइड करता है DATE_FORMAT

यह यहाँ प्रलेखित है: https://docs.djangoproject.com/en/dev/ref/settings/#date-format


20

बस इस का उपयोग करें:

{{you_date_field|date:'Y-m-d'}}

यह 2016-10-16 जैसा कुछ दिखाएगा । आप प्रारूप का उपयोग कर सकते हैं जैसा आप चाहते हैं।


8

परिदृश्य में दिनांक स्वरूप बदलने के लिए और फिर इसे टेम्पलेट में असाइन करें।

# get the object details 
home = Home.objects.get(home_id=homeid)

# get the start date
_startDate = home.home_startdate.strftime('%m/%d/%Y')

# assign it to template 
return render_to_response('showme.html' 
                                        {'home_startdate':_startDate},   
                                         context_instance=RequestContext(request) )  


6

यदि आपको छोटी तिथि और समय दिखाने की आवश्यकता है (11/08/2018 03:23 am) आप इसे इस तरह से कर सकते हैं:

{{your_date_field|date:"SHORT_DATE_FORMAT"}} {{your_date_field|time:"h:i a"}}

इस टैग के लिए विवरण यहाँ और अधिक दिए गए फॉर्मेट के अनुसार तिथियों के बारे में यहां

उदाहरण:

<small class="text-muted">Last updated: {{your_date_field|date:"SHORT_DATE_FORMAT"}} {{your_date_field|time:"h:i a"}}</small>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.