我試圖使用GridView
來顯示DateTime
值。到目前爲止,我已經能夠通過顯示利用我想要的格式字符串中的數據:以ASP格式顯示日期:GridView BoundField
<asp:GridView ID="myGrid" ... >
<Columns>
<asp:BoundField DataField="myField" DataFormatString={0:MM/dd/yyyy hhmmss} ... />
...
</Columns>
...
</asp:GridView>
我現在遇到的問題是,這個總是被顯示爲本地時間。無論用戶身處何處,我的用戶都希望它始終顯示爲UTC。 有什麼方法可以強制GridView
顯示UTC時間,而不是當地時間?
舉例來說,我已經發現,在vb.net中,將字符串轉換爲日期,我可以告訴它使用通用時間:
Dim myDateAsString as String = "03/31/2014 19:00"
Dim myDate as DateTime = DateTime.ParseExact(myDateAsString, "MM/dd/yyyy HH:mm", System.Globalization.DateTimeFormatInfo.InvariantInfo, System.Globalization.DateTimeStyles.AssumeUniversal)
我正在尋找類似的東西當我在asp中設置我的GridView
時,我可以使用的.AssumeUniversal
部分。
我希望我所問的很清楚。如果沒有,我可以嘗試詳細說明,如果有人讓我知道什麼是不明確的。
UPDATE:
的DataSource
我GridView
是由SELECT
查詢,只是從我的數據庫中提取數據填補了DataSet
。由於我在這裏感興趣的字段是我的數據庫中的一個DateTime
字段,因此我認爲它將被指定爲DataSource
時仍然是DateTime
。那是對的嗎?
在我看來像一些相關的填充GridView
唯一的代碼是
myGrid.DatqaSource = mySQLObject.sel_from_table(vars)
myGrid.DataBind()
凡mySQLObject.sel_from_table(vars)
將返回一個DataSet
如上所述。到目前爲止的答案表明,我需要將數據更改爲UTC,然後將它發送到GridView
- 在哪裏/如何完成?我是否必須以某種方式在我的查詢中更改它?或者在DataSet
之前,我將其指定爲DataSource
?
嗯,好的。如果我的'DataSource'只是'SELECT'查詢的結果,我怎麼在轉換到'GridView'之前進行轉換呢?查看我的OP的更新。 – GeneralMike
謝謝!我實際上使用VB,所以我不得不玩弄你有一點,但具有'Eval'思想的'TemplateField'工作得很好。 – GeneralMike
很高興。將來如果你想從C#中獲得VB,那麼就有在線轉換網站。粘貼c#,得到vb。 –