【发布时间】:2018-06-03 12:06:33
【问题描述】:
我在 c# 中使用 DateTime.UtcNow 和 DateTime.Now
但它们都返回错误的小时和分钟。
我的正确时间是 23:04,返回时间是 20:34 或类似的时间
我把这段代码放在 DateTime 函数之前:
System.Globalization.CultureInfo.CurrentCulture.ClearCachedData();
但同样...
我能做什么?
【问题讨论】:
-
因为这些经过万亿次测试的属性极不可能出现如此明显的错误,请您再次检查您的机器的时间并发布您用于将值显示为字符串的代码吗?
-
...或类似的东西
-
您没有提供太多信息。 2:30 的差异对应于以色列(根据您的个人资料,您可能在哪里?)和阿富汗之间的时区距离。你有任何理由认为机器的区域设置或物理位置与阿富汗有关吗?
-
您尝试清除
CultureInfo上的缓存,但CultureInfo拥有一种语言,有时还拥有一个国家/地区。这不足以给出时区,因为有些国家跨越多个时区。您必须在其他地方搜索信息。TimeZoneInfo.Local.ToString()返回什么?正如其他人所问的,你如何格式化你的DateTime?DateTime.Now.ToString("o")给了什么?使用"o",当DateTime实例的.Kind等于Local时,您将看到一个时区提示(与TimeZoneInfo.Local相关)。向我们提供更多信息。 -
你知道
DateTime.UtcNow和DateTime.Now的区别吗? @kfir