簡體   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