【问题标题】:How do I increment date and time?如何增加日期和时间?
【发布时间】:2015-10-27 23:50:50
【问题描述】:

我想在我的应用程序中显示当前日期和时间,我想使用来自服务器的时间来防止用户更改他们自己机器上的系统时钟。我当前的设置是一个计时器,每秒查询一次服务器上的时间。我还没有实现这个,我担心性能,因为会有大约 50 个客户。如果每秒有 50 个客户端查询服务器时间,性能问题有多大?在 sql 服务器上?在 oracle 数据库上?

If timecon.State = ConnectionState.Closed Then timecon.Open()
timecmd = New SqlCommand("Select CONVERT(varchar(20), GETDATE(), 101) + ' ' + CONVERT(varchar(8), GETDATE(), 114)", timecon)
lblServerTime.Text = timecmd.ExecuteScalar

我在想我可以在表单加载时查询服务器时间,然后每秒增加一次。有一个计时器递增秒、分、小时、日、月、年。我该怎么做?

或者如果可能的话,如何在表单加载时将机器日期时间与服务器日期时间同步?比如查询服务器日期时间并使用它来更改客户端机器日期时间。

【问题讨论】:

  • 为什么需要每秒重新同步?您是否担心客户端与服务器上的一秒钟更长(或更短)?第一次查询时,您可以获得差异并使用它来显示调整后的时间。 也许每隔 5 分钟左右重新查询一次以更新差异,我不希望它有太大变化
  • @Plutonix 系统会对时间敏感,客户端必须知道准确的时间。
  • 在客户端使用 Timer 将如何获得准确的服务器时间?
  • 然后 50 个客户每 5 分钟查询一次 - 每分钟 10 个 - 听起来这不是一个大的性能问题 - 据我们所知(- 问题中的模糊术语,答案中的模糊术语;- ) )
  • Google for time synchronization software - 大约有 540 万条结果。这是通用软件,尽管您最终可以花时间自己动手,但麻烦多于其价值。我建议您购买旨在做您想做的事情的东西。祝你好运。

标签: sql-server vb.net oracle winforms


【解决方案1】:

你的想法很好,如果你查询负载中的时间,然后将计时器设置为 1000 或一秒,你需要做的就是设置在达到 60 后重置的变量,然后在下一个中添加一个。例如:第二个计数器达到 60、重置、每分钟增加一个等……第一次你应该让它在几分钟后检查服务器,以确保它没有落后。

【讨论】:

    猜你喜欢
    • 2013-09-05
    • 2011-03-15
    • 2016-11-09
    • 2016-11-17
    • 1970-01-01
    • 2013-12-15
    • 2014-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多