繁体   English   中英

Azure web asp.net webapi 中的应用程序时区错误

[英]Azure web app timezone error in asp.net webapi

我在 azure paas 环境中有 web 应用程序。 我需要转换不同时区的时间,我有以下代码在开发机器上运行得很好但是当我在 azure paas 环境上部署时它会抛出错误

TimeZoneInfo serverTimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(TimeZone.CurrentTimeZone.StandardName);
                return TimeZoneInfo.ConvertTimeToUtc(_lastUpdatedDate.Value, serverTimeZoneInfo);

第一行抛出异常。 从“ViewModels.Orders.OrderActivityViewModel”上的“DateCreated”获取值时出错

一些东西:

  • 不要使用TimeZone 它已经过时了。 仅使用TimeZoneInfo class。
  • 对于所有情况, StandardName都与Id不同。 它还受操作系统语言的影响,而Id则不受此影响。
  • 本地时区的 Id 位于TimeZoneInfo.Local.Id ,尽管当您已经拥有它时,通过 Id 找到它是没有意义的。 您只需使用TimeZoneInfo.Local
  • 如果您只是将本地时间转换为 UTC,则根本不需要弄乱时区,只需在原始DateTimeDateTimeOffset值上使用.ToUniversalTime()
  • 服务器的时区可能已经是 UTC。 无论如何,这是 Azure 中的默认设置。 因此它根本不会做任何事情。
  • 如有必要,您可以更改 Azure 应用服务的WEBSITE_TIME_ZONE设置(仅在 Windows 上),但我不建议这样做。 如果您有特定的时区,则可以将该 ID 传递给TimeZoneInfo.FindSystemTimeZoneById
  • 正如其他人指出的那样,您报告的错误不在您提供的代码中,因此这些可能都对您没有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM