ASP.NET / SQL Server - Set Time Zone
我们有一个ASP.NET网站和一个在美国托管的SQL数据库。 每当我在VB.NET中使用函数
先感谢您!
鉴于您的客户可能位于不同的时区,您应该为客户存储时区,他们(或您)可以将其设置为其帐户的首选项。将所有日期+时间存储为UTC,然后在界面中显示结果时转换为其时区。
这个问题已在很大程度上解决了以下问题:
如何在ASP.NET中使用时区?
跟进:
不幸的是,SQL服务器日期是一个系统级别的设置,所以它并不是真正可以在每个会话基础上操作的东西。听起来你需要做一些代码更改,但你可以隔离它们。
您是否有包含客户端时区偏移量的会话级变量?如果没有,请创建一个。
创建一个小的日期/时间实用程序类。
在实用程序类中,提供3种方法:
(1)获取当前日期/时间(偏移到客户的时区)
(2)传递数据库日期/时间以返回客户端TZ的时间偏移量。
(3)从客户端传递一段时间以减去客户的TZ差异。
您将不得不进行代码更改,但您可以使用这些实用程序函数将输入和输出包装到任何地方,集中逻辑。 Microsoft有一个页面,说明在使用DateTime类和操作时区时要避免的错误步骤:
http://msdn.microsoft.com/en-us/library/ms973825.aspx#datetime_topic1a