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

C# 如何从时区名称中获取日期和时间,c#,timezone,C#,Timezone,如果我们提供时区区域的名称,如“America/Phoenix”,是否有办法以C#获取当前日期和时间 我尝试了以下代码:- TimeZoneInfo ZoneName = System.TimeZoneInfo.FindSystemTimeZoneById("US Mountain Standard Time"); DateTime dataTimeByZoneId = System.TimeZoneInfo.ConvertTime(DateTime.Now,System.TimeZoneInf

如果我们提供时区区域的名称,如
“America/Phoenix”
,是否有办法以C#获取当前日期和时间

我尝试了以下代码:-

TimeZoneInfo ZoneName = System.TimeZoneInfo.FindSystemTimeZoneById("US Mountain Standard Time");
DateTime dataTimeByZoneId = System.TimeZoneInfo.ConvertTime(DateTime.Now,System.TimeZoneInfo.Local, ZoneName);
但它接受/期望输入为
“美国标准时区”

我希望输入为
“America/Phoenix”
。请务必让我知道我们是否有任何C#中的选项/方法来实现这一点?

时区id类似于
美国/凤凰城
来自。Net的
TimeZoneInfo
类不使用该数据。有关详细信息,请参阅

要在.NET中使用IANA时区标识符,您应该查看。以下是您如何使用野田佳彦时间获取美国/凤凰城的当前本地时间:

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();

对于处理时间和日期相关的任务,我建议使用野田佳彦时间。有关更多信息,请参阅。查看此。它可能会帮助你:)谢谢你的回复。将在执行代码后通知您