2011-01-13 15 views
77

का उपयोग कर डेटटाइम प्रारूप को परिवर्तित करना निम्नलिखित में क्या गलत है?रेजर

@Convert.ToDateTime((@item.Date.ToShortDateString())," dd - M - yy") 

@ item.Date दिखा 20/11/2005: 12:00 कर रहा हूँ और मैं प्रदर्शित करने के लिए 20 नवंबर 2011 चाहते

+1

युग्म: http: // msdn.microsoft.com/en-us/library/8kb3ddd4.aspx –

उत्तर

207

प्रयास करें:

@item.Date.ToString("dd MMM yyyy") 

या आप [DisplayFormat] विशेषता इस्तेमाल कर सकते हैं आपके विचार मॉडल पर:

[DisplayFormat(DataFormatString = "{0:dd MMM yyyy}")] 
public DateTime Date { get; set } 

और बस अपने ध्यान में रखते हुए:

@Html.DisplayFor(x => x.Date) 
+3

मैंने इसे एक टेक्स्टबॉक्स के साथ करने की कोशिश की और दुर्भाग्य से यह काम नहीं किया। क्या टेक्स्टबॉक्स के लिए ऐसा करने का कोई तरीका है? – Tobias

+2

टेक्स्टबॉक्स के लिए केवल DisplayFor –

+6

के बजाय EditorFor का उपयोग करें, यदि आप स्वरूप स्वरूप() तत्वों पर दिनांक स्वरूपण लागू करना चाहते हैं तो अपनी प्रदर्शनफॉर्मेट परिभाषा में "ApplyFormatInEditMode = true" सेट करना याद रखें। – Latedeveloper

2

सामान्य तौर पर, लिखा महीने MMM, yyyy के रूप में 4 अंकों साल के रूप में बच रहा है, तो आपके प्रारूप स्ट्रिंग की तरह "dd MMM yyyy"

DateTime.ToString("dd MMM yyyy") 
+0

@ ViewBag.PurchaseInfo.LastPurchaseTime.ToString ("dd.MM.yyyy") – yonexbat

54

दिखना चाहिए यह समाधान है:

@item.Published.Value.ToString("dd. MM. yyyy") 
पहले toString() उपयोग मूल्य

+0

धन्यवाद मिरोस्लाव, यह मेरे लिए काम करता है। –

+1

यह कोड सही है लेकिन यदि दिनांक कॉलम शून्य है, तो यह त्रुटि फेंक देगा, इसलिए [this] (http://stackoverflow.com/a/29742649/2218697) – stom

+0

स्टॉम सही है, यदि आपके पास शून्य मान फेंकेंगे आप त्रुटि, –

18

[DisplayFormat] विशेषता केवल संपादकफ़ोर/डिस्प्लेफ़ोर में उपयोग की जाती है, न कि कच्चे HTML एपीआई जैसे टेक्स्टबॉक्स फोर द्वारा। मैं इसे, निम्नलिखित करके काम कर मिल गया

मॉडल:

[Display(Name = "When was that document issued ?")] 
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")] 
public DateTime? LiquorLicenceDocumentIssueDate { get; set; } 

दृश्य:

 <div id="IsLiquorLicenceDocumentOnPremisesYes" class="groupLongLabel"> 
      @Html.LabelFor(m => m.LiquorLicenceDocumentIssueDate) 
      <span class="indicator"></span> 
      @Html.EditorFor(m => m.LiquorLicenceDocumentIssueDate) 
      <span id="validEmail"></span> 
      <br /> 
      @Html.ValidationMessageFor(m => m.LiquorLicenceDocumentIssueDate) 
     </div> 

आउटपुट: 30/12/2011

संबंधित लिंक:

http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.displayformatattribute.applyformatineditmode.aspx

+1

वैकल्पिक रूप से, आप @ string.Format ("{0: MM yyyy}", imprint.VersionDate) का भी उपयोग कर सकते हैं –

3

रेजर के लिए दृश्य/साझा/संपादक टेम्पलेट फ़ोल्डर में फ़ाइल DateTime.cshtml डालें। DateTime.cshtml में दो पंक्तियां होती हैं और 9/11/2001 को स्वरूपित दिनांक वाली टेक्स्टबॉक्स का उत्पादन करती है।

@model DateTime? 
@Html.TextBox("", (Model.HasValue ? Model.Value.ToShortDateString() : string.Empty), new { @class = "datePicker" }) 
18

MVC में इस प्रयास करें 4,0

@Html.TextBoxFor(m => m.YourDate, "{0:dd/MM/yyyy}", new { @class = "datefield form-control", @placeholder = "Enter start date..." }) 
+1

यह डाउनवॉट क्यों किया गया था? – cdmckay

+2

मुझे नहीं पता कि कोई भी इस जवाब को क्यों कम करेगा। –

+0

मुझे लगता है कि डाउनवोट इस समाधान के कारण "डीडी/एमएम/yyyy" के रूप में दिनांक को "डीडी एमएमएम yyyy" प्रारूप के बजाय प्रारूपित कर रहा था, जिसे ओपी ने – PTD

2

कोड नीचे की मदद से आप विभिन्न दिनांक स्वरूप विनिर्देशक मौजूद है कि यहां पाया जा सकता का

@Html.Label(@item.Date.Value.ToString("dd - M - yy"))