保持我提交的客户端日期时间与我的计时器作业同步

时间:2013-03-11 20:14:38

标签: c# datetime

我从客户端向我的服务器提交日期时间。让我们说加利福尼亚时间下午1点。在提交这些数据后,我解析时间并将其转换为UTC,如下所示:

DateTime.SpecifyKind(DateTime.ParseExact(model.SessionStart, "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture).ToUniversalTime(), DateTimeKind.Utc);

我在同一台服务器上运行了一个timerjob,它检查这些日期是否小于当前时间,所以我的代码在会话开始时间正确时运行。

如何让所有这些时间与我的服务器保持同步,这样如果有人从加利福尼亚或纽约提交,一切都正确转换,我的timerjob将正确运行。

1 个答案:

答案 0 :(得分:1)

我认为更好的拍卖方法是让客户端以UTC格式发送服务器开始时间和结束时间,让服务器计时器将现在的Utc时间与拍卖开始/结束时间进行比较。这里根本不需要使用服务器的本地时间。

当地唯一的使用时间是在客户端显示。 任何与服务器和服务器内的处理都应该始终只用UTC。

至于时间同步,您可以使用John Skeet建议的NODA时间: What would be the best way to synchronize my application's time with outside server's time?