从 SQL Server 中获取 UTC 日期 在网格中显示为当地时间
我在 SQL Server 2005 中有一个表,其中有一个以 UTC 形式保存日期的日期时间列。 我希望客户端调用 .NET 服务器应用程序,服务器将返回一个 DataTable,其中包含要在客户端绑定到 DataGridView 的记录。 ** 在客户端上,日期应以当地时间显示 **,客户端将位于世界的可能地区。 有人对实现这一目标有什么建议吗? 我当然可以添加几行来循环并在显示之前更新表中的日期,但我不禁觉得必须有一些时髦的方式来做到这一点。
TA!!
I've got a table in SQL Server 2005 that has a datetime column holding dates in UTC form. I want clients to call the a .NET server app and the server will return a DataTable with records to be bound client side to a DataGridView.
** On the client the dates should be displayed in local time **, clients will be in may regions of the world.
Does anyone have any tips on achieving this?
I could of course add a few lines to loop through and update the dates in the table before display but I can't help feeling there's got to be some snazzy funky way of doing this.
TA!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
DateTime.ToLocalTime 就是您要找的。
本质上,您调用该方法的事实告诉 DateTime 对象添加当前区域性相对 UTC 的偏移量并返回结果。 DateTime.ToUniversalTime 则相反。
DateTime.ToLocalTime Is what you're looking for.
Essentially, the fact that you're calling the method tells the DateTime object to add the current culture's offset from UTC and return the result. DateTime.ToUniversalTime does the opposite.
首先,确保表中的 DATETIME 值存储为 UTC 值。
之后,当您阅读它们时,“客户端”应用程序可以将它们转换为本地日期时间(无论是什么)。
插入/更新内容时,请确保在存储到数据库之前从本地转换为 utc。
First of all, make sure that the DATETIME values in your tables are stored as UTC values.
After that when you read them, the "client" application can convert them to local datetime (whatever that may be).
When inserting/updating stuff make sure you convert from local to utc before storing in the db.