【问题标题】:ASP.Net C# UTC/GMT DateTimeASP.Net C# UTC/GMT 日期时间
【发布时间】:2012-10-07 09:00:16
【问题描述】:

我想要 UTC 0 时间,即格林威治标准时间 (GMT)。

我尝试 DateTime.UtcNow 和 DateTime.Now.ToUniversalTime() 但它返回错误的时间。 它返回 22:40 而不是 06:40

如何在 C# 中获取 UTC/GMT 时间。

【问题讨论】:

  • 删除了 asp.net 标签 - 如果您想再次包含它,请确保问题说明了您认为它相关的原因。

标签: c# datetime utc gmt


【解决方案1】:

我尝试 DateTime.UtcNowDateTime.Now.ToUniversalTime() 但它返回错误的时间。

不,真的没有。 (我强烈建议使用前者而不是后者。一般来说,由于夏令时转换,从本地时间转换为 UTC 可能会模棱两可。我相信在这种特殊情况下它可能会没错,但UtcNow 是更好的方法。)

DateTime.UtcNow 确实返回当前的 UTC 时间。如果它给你错误的结果,那么你的系统时钟是错误的 - 或者你正在某处对值进行其他转换(例如,将其转换为本地时间作为格式化的一部分)。

基本上,您使用的是正确的属性,因此您需要诊断结果到底哪里出了问题。

我建议你从一个小的控制台应用开始:

class ShowTimes
{
    static void Main()
    {
        Console.WriteLine("Local time: {0}", DateTime.Now);
        Console.WriteLine("UTC time: {0}", DateTime.UtcNow);
    }
}

这显示了什么,您在哪个时区?

【讨论】:

  • 我不会在任何地方转换日期时间。如何在VS中检查系统时间的错误或正确?
  • @user999822:你可能不会认为你改变它......但它有时会以意想不到的方式发生。查看您在 Windows 中的系统时钟,并检查它认为它所在的时区。我也会使用一些示例代码来编辑问题。
  • 本地时间:10:11:42 UTC 时间:17:11:42 本地时间我的电脑时间正确,但 UTC 时间错误。真正的UTC时间07:11:42。我在 GMT+3 时区。
  • @user999822:很明显,您的计算机认为您不在 GMT+3 时区……您应该查看操作系统中的日期/时间设置。
猜你喜欢
  • 2010-12-09
  • 1970-01-01
  • 1970-01-01
  • 2011-08-29
  • 2016-05-22
  • 1970-01-01
  • 2018-07-28
  • 1970-01-01
相关资源
最近更新 更多