C# asp.net webapi中的Azure web app时区错误
我在azure paas环境中有web应用程序。我需要在不同的时区转换时间,我有以下代码,这些代码在dev机器上运行得非常好,但是当我在azure paas环境上部署时,它会抛出错误C# asp.net webapi中的Azure web app时区错误,c#,asp.net-web-api,timezone,azure-webapps,C#,Asp.net Web Api,Timezone,Azure Webapps,我在azure paas环境中有web应用程序。我需要在不同的时区转换时间,我有以下代码,这些代码在dev机器上运行得非常好,但是当我在azure paas环境上部署时,它会抛出错误 TimeZoneInfo serverTimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(TimeZone.CurrentTimeZone.StandardName); return TimeZoneInfo.ConvertTimeT
TimeZoneInfo serverTimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(TimeZone.CurrentTimeZone.StandardName);
return TimeZoneInfo.ConvertTimeToUtc(_lastUpdatedDate.Value, serverTimeZoneInfo);
第一行抛出异常。从“ViewModels.Orders.OrderActivityViewModel”上的“DateCreated”获取值时出错。以下几点:
- 不要使用
类。它已经过时了。仅使用时区
类TimeZoneInfo
- 对于所有情况,
与StandardName
不同。它还受操作系统语言的影响,而Id
不受影响Id
- 本地时区的Id位于
,尽管在您已经拥有它的情况下,按Id查找它是没有意义的。您只需使用TimeZoneInfo.local.Id
TimeZoneInfo.Local
- 如果您只是将本地时间转换为UTC,则根本不需要处理时区,只需在原始的
或DateTime
值上使用DateTimeOffset
.ToUniversalTime()
- 服务器的时区可能已经是UTC。这是Azure中的默认设置。因此,它根本不会做任何事情
- 如有必要,您可以更改Azure应用程序服务的
设置(仅限Windows),但我不建议这样做。如果您心中有一个特定的时区,那么您可以将该ID传递到网站\u时区
TimeZoneInfo.FindSystemTimeZoneById
- 正如其他人所指出的,您报告的错误不在您提供的代码中,因此这些都可能对您没有帮助