ASP.Net C# UTC/GMT 日期时间
Posted
技术标签:
【中文标题】ASP.Net C# UTC/GMT 日期时间【英文标题】:ASP.Net C# UTC/GMT DateTime 【发布时间】:2012-10-07 09:00:16 【问题描述】:我想要 UTC 0 时间,即格林威治标准时间 (GMT)。
我尝试 DateTime.UtcNow 和 DateTime.Now.ToUniversalTime() 但它返回错误的时间。 它返回 22:40 而不是 06:40
如何在 C# 中获取 UTC/GMT 时间。
【问题讨论】:
删除了 asp.net 标签 - 如果您想再次包含它,请确保问题说明了您认为它相关的原因。 【参考方案1】:我尝试
DateTime.UtcNow
和DateTime.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 时区……您应该查看操作系统中的日期/时间设置。以上是关于ASP.Net C# UTC/GMT 日期时间的主要内容,如果未能解决你的问题,请参考以下文章