DateTime.现在在.NET中有时是错误的

本文关键字:错误 NET DateTime | 更新日期: 2023-09-27 18:20:52

在我的web应用程序中,当用户单击"START"按钮时,我通过DateTime.Now记录时间,并将其保存到sql server数据库中。此操作在一天中使用多次。有时,一两天,它会记录错误的时间。我跟踪了我的所有代码,以确保我的代码中没有更新此列值的地方。请注意,我的web应用程序完全在客户端机器(IIS、sql server express)上运行。我想也许是DateTime。现在记错时间了。请给我一些建议?

DateTime.现在在.NET中有时是错误的

.Net DateTime.Now从代码执行的任何计算机获取时间。

我建议您改为从数据库服务器获取日期和时间。假设这是SQL Server,您将使用以下语句:

select getdate() 

http://msdn.microsoft.com/en-us/library/ms188383.aspx

除了Derek的解决方案外,我建议您查看代码中缓存DateTime.Now()var的位置。可能是在代码loigc开始时捕获的,因此,根据条件的不同,从获取日期时间到将其传递到服务器之间的时间可能会有很大差异。

我的建议(在没有代码的情况下)是确保变量的日期时间缓存实际上是调用sqlserver之前的最后一个操作(当然,除非监视方法的持续时间很重要——在这种情况下,取两个日期时间变量,一个在方法的顶部,一个位于方法的底部,并将两者都传递)。