C# DateTime.Now什么时候真正进入web应用程序?
在设计web应用程序时,特别是在使用Asp.net MVC4 c#时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应用程序,所以这一点让我
private DateTime currentDateTime = DateTime.Now;
在我的代码中的某个地方,将currentDateTime保存到数据库中;然后,我在web上部署我的应用程序
currentDateTime的值是多少
a。打开我的应用程序的浏览器/计算机的日期时间(时区问题)
b。在其中部署应用程序的服务器的日期时间(所有值都在一个时区内)
抱歉,我刚刚开始使用web应用程序,所以这一点让我很困惑。希望你能向我澄清。谢谢。ASP.Net代码正在服务器上执行,因此将是服务器时间。将是服务器上的时间。正确答案是: b。我在其中部署应用程序的服务器的日期时间,因为代码是在那里执行的 还有另一个
DateTime
属性,DateTime.UtcNow
始终获取UTC时间。我建议在应用程序和数据库中(例如,在sql server中使用getutcdate())都使用该方法,因为它可以避免各种同步性问题
如果您需要向客户机显示日期,只需按客户机时区偏移保存的时间,您就是黄金。这将是服务器上的时间,因为这是执行代码的地方
您可能希望改用,因为这样可以减少时区问题。在显示或计算时间时,您可以轻松地转换为客户端或服务器上的本地时间。该值将显示服务器上的本地时间
但是,我强烈建议使用世界协调时间(UTC),例如,
DateTime.UtcNow
,它使关于日期时间的推理变得更加简单,并意味着您将能够在世界任何地方托管您的应用程序,而不会产生不利影响。非常好的建议。请记住,这仍然需要在服务器上设置正确的时区信息。(这来自于经验之声。我不得不调试服务器端问题,但后来发现我们跟踪的是错误的问题——因为记录的各种事件的时间不正确)。