gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 12:45:57 25 4
gpt4 key购买 nike

如果我们提供像 "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 time zone database . .Net 的 TimeZoneInfo 类不使用该数据。参见 the timezone tag wiki了解详情。

要在 .NET 中使用 IANA 时区标识符,您应该查看 Noda Time .以下是如何使用 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();

关于c# - 如何从时区名称获取日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21950442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com