当从东部时区服务器调用 asp.net (aspx) 页面时,中央时区机器的时区是什么

What will be timezone in central time zone machine, when a asp.net (aspx) page is called from eastern timezone server

我在东部时区有一个 SQL Server 2016,有一个存储过程,它调用了 GETDATE()。 ASP.NET页面调用此存储过程; ASP.NET 应用程序部署在同样位于东部时区的服务器上。

如果用户从中部时区访问页面,将GETDATE()检索并显示中部时区日期和时间,或东部时区日期和时间?

GETDATE() 在您的数据库服务器上执行,如果部署在东部时区,对于世界上任何地方的任何客户端(网络)应用程序,始终 returns 东部时间。

因此恕我直言,在处理多个时区时,最好选择仅在数据库中存储 UTC/GMT date/time 值,并让客户端转换并显示其本地 date/time。示例:

    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        SqlCommand cmd = new SqlCommand("SELECT GETUTCDATE() AS UTC", connection);
        using (SqlDataReader sqlDataReader = cmd.ExecuteReader())
        {
            while (sqlDataReader.Read())
            {
                DateTime utcFromDatabase = (DateTime)sqlDataReader["UTC"];
                DateTime mylocalTime = utcFromDatabase.ToLocalTime();
                myLabel.Text = string.Format("UTC:{0}, Local:{1}", utcFromDatabase, mylocalTime);
            }
        }
    }

显然,您不应该忘记让客户也以 UTC(非本地)格式提交他们的日期时间值。但是使用这种方法可以让您将数据库服务器移动到整个不同的大陆,而不会出现客户端日期时间格式问题。