我试图使用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。 –