2013-05-30 126 views
0

我有一個日期時間格式的問題,在asp mvc 4中。 日期顯示爲dd/mm/yyyy hh:mm:ss, 所有我想顯示的是dd/mm/yy,因爲它是DOB。DateTime?在文本框中格式化

我的模型如下...

[Display(Name = "Date of Birth")] 
[DisplayFormat(DataFormatString = "{0:d}"] 
public DateTime? DOB { get; set; } 

我的看法......

@Html.TextBoxFor(model => model.Patient.DOB, new { @class = "m-wrap span8", disabled = "disabled" }) 

我不希望用戶能夠編輯日期,以便EditFor不是選項,我試圖將標籤ApplyFormatInEditMode = true添加到屬性中,同時用EditFor替換TextBoxFor,這樣做的格式是正確的,允許用戶編輯!

我也試過DOB.value.ToShortDateString(),沒有快樂。

任何提示或幫助的讚賞......

回答

0

您正在使用short date format specifier其拉動當前線程文化(默認情況下通常是你的操作系統的文化)的日期/時間格式。

如果你需要的是你需要修復它即

[DisplayFormat(DataFormatString = "{0:dd/MM/yy}")] 

如果使用EditorFor而不是TextBoxForDisplayFormat屬性只適用一個統一的格式。

+0

感謝您的答覆,但似乎沒有解決它,這個問題是否與「?」有關。以下日期時間... – mkell

+0

@mkell哪種模式是您在編輯或顯示中的視圖? '?'意味着'DateTime'可以爲空,這不應該影響格式。 – James

+0

不完全確定我明白你的模式是什麼意思?或在哪裏檢查? – mkell