0

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

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

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

4

1 回答 1

3

我尝试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);
    }
}

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

于 2012-10-17T06:47:35.270 回答