azure 将utc转换为本地日期时间

fkaflof6  于 2023-06-06  发布在  其他
关注(0)|答案(3)|浏览(350)

我在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日期获得正确的本地时间。我已经检查了其他主题,但它没有工作..

js4nwp54

js4nwp541#

Microsoft Azure将UTC时间设置为本地时间,无论数据中心位于何处。如果您想转换为用户浏览器的本地时间,则需要通过编程进行转换。
由于Azure是一项全球服务,因此实际上没有本地时间,并且为了在所有全球数据中心保持一致,使用标准时间是有意义的。
更多信息,请访问。
http://michaelcollier.wordpress.com/2010/05/22/hey-azure-what-time-is-it/

kyks70gy

kyks70gy2#

正如@John所指出的,你必须在客户端中这样做。如果是Web应用程序,您可以通过以下方式将UTC转换为本地时间:broken link

fnvucqvd

fnvucqvd3#

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

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

即使它是W。欧洲标准时间,它仍然考虑夏令时。(我有它的工作与GMT/BST相当不错)
我曾希望ToLocalTime在转换时会考虑CultureUI/Culture全球化设置,但情况似乎并非如此。

相关问题