【问题标题】:How to get real current date in c#? [duplicate]如何在 C# 中获取真实的当前日期? [复制]
【发布时间】:2015-07-07 09:08:16
【问题描述】:

我想在 C# 中获取真正的当前日期。目前我面临一个问题,如果有人更改系统时间,它将显示错误的时间和日期。我用DateTime.Now。但在这种情况下它不起作用。提前致谢。

【问题讨论】:

标签: c# date system


【解决方案1】:

NIST获取它

var client = new TcpClient("time.nist.gov", 13);
using (var streamReader = new StreamReader(client.GetStream()))
{
    var response = streamReader.ReadToEnd();
    var utcDateTimeString = response.Substring(7, 17);
    var localDateTime = DateTime.ParseExact(utcDateTimeString, "yy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);
}

并确保端口 13 未被阻塞。

【讨论】:

    【解决方案2】:

    DateTime.Now 正在按预期返回时间:这是由系统决定的。

    获取一个 DateTime 对象,该对象设置为此计算机上的当前日期和时间,以本地时间表示。

    如果您想依赖“实时”,您需要继续并与 NIST time servers 之一进行协调 - 这样您就可以匹配,并通知不一致或任何您需要的东西这样做需要依赖于现实世界中的时间,而不是像单台机器上的人工可编辑时间所说的那样。

    【讨论】:

      猜你喜欢
      • 2015-02-10
      • 2016-04-18
      • 2017-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-12
      • 2012-01-10
      相关资源
      最近更新 更多