3

我在 web.config 中有一个全球化设置,如下所示:

<globalization culture="de-DE" uiCulture="de-DE" />

并且在平均aspx页面上我输出某事。喜欢:

var a = DateTime.UtcNow.ToLocalTime().ToString();
var b = DateTime.UtcNow.ToString();
var c = DateTime.Now.ToLocalTime().ToString();
var d = TimeZone.CurrentTimeZone.ToLocalTime(DateTime.UtcNow).ToString();

结果: a,b,c,d 的值都是相同的(例如 01.01.2001 17:00:00 ),而我希望本地时间和 UTC 时间不同。

我在这里缺少什么以及如何从 UTC 日期获得正确的本地时间.. 我已经检查了其他主题,但它没有用..

4

3 回答 3

6

无论数据中心位于何处,Microsoft Azure 都将 UTC 时间设置为本地时间。如果要转换为用户浏览器的本地时间,则需要以编程方式对其进行转换。

由于 Azure 是一项全球服务,因此实际上没有本地时间,并且为了在其所有全球数据中心保持一致,使用标准时间是有意义的。

更多信息在。

http://michaelcollier.wordpress.com/2010/05/22/hey-azure-what-time-is-it/

于 2011-04-25T18:45:56.810 回答
2

正如@John 所指出的,您必须在客户端执行此操作。如果它是一个 Web 应用程序,您可以通过以下方式将 UTC 转换为本地时间:http: //blogs.msdn.com/b/marcelolr/archive/2008/06/04/javascript-date-utc-and-local-times。 aspx

于 2011-04-26T14:58:21.620 回答
0

这就是我发现对我有用的东西:

   TimeZoneInfo de = TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time");
   var localTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, de);

即使是西欧标准时间,它仍然会考虑夏令时。(我可以很好地使用 GMT/BST)

我曾希望 ToLocalTime 在转换时会考虑 CultureUI/Culture 全球化设置,但事实并非如此。

于 2019-09-11T14:24:22.693 回答