如何从时区名称获取日期和时间



如果我们提供时区区域的名称,如"America/Phoenix",有没有办法在C#中获取当前日期和时间?

我尝试了以下代码:-

TimeZoneInfo ZoneName = System.TimeZoneInfo.FindSystemTimeZoneById("US Mountain Standard Time");
DateTime dataTimeByZoneId = System.TimeZoneInfo.ConvertTime(DateTime.Now,System.TimeZoneInfo.Local, ZoneName);

但它需要/期望输入为"US Standard Time Zone"。我希望输入是"America/Phoenix"的。请让我知道我们在 C# 中是否有任何选项/方法来实现这一目标?

时区

ID 类似 America/Phoenix来自 IANA 时区数据库。 .Net的TimeZoneInfo类不使用这些数据。 有关详细信息,请参阅时区标记维基。

要在 .NET 中使用 IANA 时区标识符,您应该查看 Noda 时间。 以下是使用 Noda Time 获取America/Phoenix的当前本地时间的方法:

Instant now = SystemClock.Instance.Now;
DateTimeZone tz = DateTimeZoneProviders.Tzdb["America/Phoenix"];
ZonedDateTime zdt = now.InZone(tz);
// Then depending on what your needs are, pick one of the following:
LocalDateTime ldt = zdt.LocalDateTime;
DateTime dt = zdt.ToDateTimeUnspecified();
DateTimeOffset dto = zdt.ToDateTimeOffset();

相关内容

  • 没有找到相关文章

最新更新