2013-01-18 210 views
1

我目前有標準Datetime使用AM/PM。我希望有24H顯示。搜索網絡給了我很多選項String.Format()選項。24小時DateTime在C#

問題是這會創建一個字符串對象來顯示日期。我需要使用一個datetime對象,因爲它在表中使用並且日期列必須能夠被排序(asc/desc)。該表是一個GridView對象。

代碼示例

目前代碼顯示如下2009年8月21日上午11點28分36秒的時間。我將在2009年8月11日11:28:36發佈一個完美的情況。我知道我可以用下面的代碼得到結果。

date.ToString("dd/MM/yyyy HH:mm:ss"); 

問題是這是一個字符串。字符串get放入表中,如果我排序日期列,它將首先在一天而不是一年中排序。 顯示以下降序列。

21/8/2009 11:28:36 
20/1/2013 15:55:23 

要正確地對列進行排序,插入的objecttype應該是DateTime。對象類型由以下代碼強制。

dateTable.Columns.Add(new DataColumn("Date", typeof(DateTime))); 
+1

一個很好的例子或者一段代碼。 –

+0

您應該重寫網格單元格中的顯示函數,以便以期望的方式顯示數據。 – SmartK8

+0

排序和顯示值是兩件不同的事情。 –

回答

0

根據this article你可以使用一個BoundField像這樣:

<asp:boundfield datafield="Your_Date_Column" dataformatstring="{0:MMMM d, yyyy}" htmlencode="false" /> 

然後,您可以簡單地使用這個格式字符串:

"HH:mm" 

凡大寫的H呈現24小時的時間,而不是一個小時,這將使12小時的時間。

+0

這解決了我的問題!非常感謝你! – user1746525

0

你應該在GridView控件

使用 BoundField DataFormatString財產