如何处理旨在全局运行的应用程序的DateTime。 UTC / GMT /夏令时

时间:2011-11-28 10:06:13

标签: asp.net sql datetime

我正在制作一个目标受众遍布全球的应用程序。我的开发平台是ASP.Net/Sql Server,目前它们目前都托管在同一个dediacated服务器上。

可能有可能将Sql Server移动到不同的服务器和Web应用程序中以托管在不同的服务器上。两个服务器的时区可能不同。

目前我们正在开发并需要处理通用日期时间概念,而不是在后期阶段进行战斗。

我们的数据库目前采用以下类型的日期时间列构建。

DateTime(mm / dd / yyyy hh:MM:ss),SmallDateTime(仅保留日期部分mm / dd / yyyy 12:00:00),Varchar(仅以24小时格式保存hhMMss)

目前我们正在保存 Sql Server的GetDate() Date#.Now of C#,即ASP.NET,javascript datetime和任何其他日期。目前没有UTC转换或类似的内容。我们目前既没有存储任何TimeZone或任何偏移。

时如何处理与DateTime相关的问题
  • 调用存储过程将日期时间从UI保存到数据库

  • 将数据从存储过程显示到UI

  • 从ASP.NET服务器向客户端浏览器显示数据

  • 将数据从客户端浏览器保存到ASP.NET服务器

请为每个案例和夏令时提供一些代码示例

1 个答案:

答案 0 :(得分:0)

我在世界各地都有业务的公司工作,我们以UTC格式存储所有日期。

基本上,在你的sql中你必须使用GETUTCDATE()函数而不是GETDATE() 在C#中,您使用DateTime.UtcNow而不是DateTime.Now。

数据库字段可以是标准日期时间

如果您不知道或无法弄清楚客户的本地设置,您可以在UI中以yyyy / MM / dd格式显示日期。