将客户端时间转换为utc时间以保存到sql

问题描述:

我该如何才能让各个时区的客户端在他们的Web浏览器中选择日期和时间并将其保存为utc时间到我的sql数据库中?此日期是未来的日期,因此无论日期是否在夏令时,都可能发生变化,因此我需要对此进行说明。将客户端时间转换为utc时间以保存到sql

该网站是一个asp.net c#网站。

+0

您正在使用哪个数据库供应商?有几家供应商提供了'TIMESTAMP WITH TIME ZONE'数据类型,它应该解决这类问题。 – incarnate 2010-02-14 09:16:22

在您的HTML中有一个隐藏字段,并通过javascript填充当前时间。由于它是由用户的浏览器完成的,它将在当地时间。在服务器端,将其与服务器的本地时间进行比较以查找时区偏移量。

+0

也许你可以使用DateTime类的ToUniversalTime方法来进行转换。 http://msdn.microsoft.com/en-us/library/system.datetime.touniversaltime(VS.71).aspx – DaveB 2010-02-14 05:23:52

+0

这将适用于当前时间,但如果他们在未来的日期保存日期由于夏令时可能会有不同的偏移量。我无法弄清楚我将如何在未来的日子里拯救未来的日子 – Jon 2010-02-14 15:46:30

我们最终要做的事情是添加客户端时区的存储作为其用户配置的一部分。我们确切地知道这样,他们在哪里,你可以使用内置的框架3.5的转换功能来执行本地和UTC之间的所有转换(这是考虑到夏令)

看到这里http://msdn.microsoft.com/en-us/library/bb382770.aspx

我假设您已验证用户身份,但如果您将用户选择的日期存储在数据库中,这是一个公平的选择。

你不能在客户端上将日期/时间转换为UTC吗?