C# DateTime.Now什么时候真正进入web应用程序?

C# DateTime.Now什么时候真正进入web应用程序?,c#,datetime,web-applications,asp.net-mvc-4,C#,Datetime,Web Applications,Asp.net Mvc 4,在设计web应用程序时,特别是在使用Asp.net MVC4 c#时 private DateTime currentDateTime = DateTime.Now; 在我的代码中的某个地方,将currentDateTime保存到数据库中;然后,我在web上部署我的应用程序 currentDateTime的值是多少 a。打开我的应用程序的浏览器/计算机的日期时间(时区问题) b。在其中部署应用程序的服务器的日期时间(所有值都在一个时区内) 抱歉,我刚刚开始使用web应用程序,所以这一点让我

在设计web应用程序时,特别是在使用Asp.net MVC4 c#时

  private DateTime currentDateTime = DateTime.Now;
在我的代码中的某个地方,将currentDateTime保存到数据库中;然后,我在web上部署我的应用程序

currentDateTime的值是多少

a。打开我的应用程序的浏览器/计算机的日期时间(时区问题)

b。在其中部署应用程序的服务器的日期时间(所有值都在一个时区内)


抱歉,我刚刚开始使用web应用程序,所以这一点让我很困惑。希望你能向我澄清。谢谢。

ASP.Net代码正在服务器上执行,因此将是服务器时间。

将是服务器上的时间。

正确答案是:

b。我在其中部署应用程序的服务器的日期时间,因为代码是在那里执行的

还有另一个
DateTime
属性,
DateTime.UtcNow
始终获取UTC时间。
我建议在应用程序和数据库中(例如,在sql server中使用getutcdate())都使用该方法,因为它可以避免各种同步性问题


如果您需要向客户机显示日期,只需按客户机时区偏移保存的时间,您就是黄金。

这将是服务器上的时间,因为这是执行代码的地方


您可能希望改用,因为这样可以减少时区问题。在显示或计算时间时,您可以轻松地转换为客户端或服务器上的本地时间。

该值将显示服务器上的本地时间


但是,我强烈建议使用世界协调时间(UTC),例如,
DateTime.UtcNow
,它使关于日期时间的推理变得更加简单,并意味着您将能够在世界任何地方托管您的应用程序,而不会产生不利影响。

非常好的建议。请记住,这仍然需要在服务器上设置正确的时区信息。(这来自于经验之声。我不得不调试服务器端问题,但后来发现我们跟踪的是错误的问题——因为记录的各种事件的时间不正确)。