【问题标题】:TimeZoneNotFoundException: The time zone ID 'West Africa Time' was not found on the local computerTimeZoneNotFoundException:在本地计算机上找不到时区 ID“西非时间”
【发布时间】:2020-12-06 02:42:40
【问题描述】:

我有一个交易日期作为 DateTimeOffset UtcNow 存储在数据库中。 当我检索日期时,我得到如下内容

16/08/2020 晚上 9:12:34 +00:00

但我想表示交易时间以表示我的客户所在的 UTC+1 时区的确切时间。但是当我尝试使用以下代码时

TimeZoneInfo.ConvertTime(item.TransactionTime, TimeZoneInfo.FindSystemTimeZoneById("W. Central Africa Standard Time"));

我收到以下错误,

TimeZoneNotFoundException:在本地计算机上找不到时区 ID 'UTC+1'。

我也试过

  TimeZoneInfo.ConvertTime(item.TransactionTime, TimeZoneInfo.FindSystemTimeZoneById("West Central Africa"));

但运气不好。

我会做错什么?

我的应用程序在 Windows 服务器上运行的 ASP.NET-Core 3.1 上。

请帮忙

【问题讨论】:

  • "W. Central Africa Standard Time" 似乎是一个有效的时区 ID。 support.microsoft.com/en-nz/help/973627/…你能试试 TimeZoneInfo.GetSystemTimeZones() 看看它有什么值吗?
  • @JaliyaUdagedara ,我已经这样做了,这就是我实际使用该 ID 的方式。

标签: c# datetime datetime-format asp.net-core-3.1 datetimeoffset


【解决方案1】:
TimeZoneInfo NaijaZone = TimeZoneInfo.FindSystemTimeZoneById("W. Central Africa Standard Time");

我使用上面的代码让它工作了,虽然上面也写了那个错误,但我认为空格影响了 ID。

【讨论】:

  • “空格影响 ID”是什么意思?
  • @KlausGütter 我只是想到了它,因为在它后来对我有用之前我最近遇到了同样的错误,我注意到的是,如果编译器没有将实际区域作为内置时区, 会提示错误。我尝试了“W.central....”、“West Centra....”,直到我调试并复制了实际区域。所以当我使用我复制的区域时,它可以工作
猜你喜欢
  • 2017-06-26
  • 2022-10-13
  • 1970-01-01
  • 2021-11-30
  • 1970-01-01
  • 2014-06-05
  • 2021-07-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多