C# 如何查找时区ID的UTC偏移量?

C# 如何查找时区ID的UTC偏移量?,c#,.net,datetime,timezone,C#,.net,Datetime,Timezone,我们使用以下内置的.net方法建立了时区下拉列表: 然后我们将timeZone.Id(一个字符串)存储在数据库中。我选择存储Id而不是偏移量,因为偏移量随着夏令时的变化而变化 我的问题是,以后如何使用timeZone.Id属性获取UTC偏移量?我看不到任何允许这样做的方法。此方法的示例代码将满足您的所有要求。我可以用一些简单的示例进行编辑,但我应该足够了 基本上,您可以使用: TimeZoneInfo timeZone = TimeZoneInfo.FindSystemTimeZoneById

我们使用以下内置的.net方法建立了时区下拉列表:

然后我们将timeZone.Id(一个字符串)存储在数据库中。我选择存储Id而不是偏移量,因为偏移量随着夏令时的变化而变化


我的问题是,以后如何使用timeZone.Id属性获取UTC偏移量?我看不到任何允许这样做的方法。

此方法的示例代码将满足您的所有要求。我可以用一些简单的示例进行编辑,但我应该足够了

基本上,您可以使用:

 TimeZoneInfo timeZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
 TimeSpan offset = timeZone.GetUtcOffset(DateTime time);

谢谢。我的服务器是UTC。因为它们在服务器时间工作,所以没有任何作用。我正在尝试使用用户的时区,我应该能够从时区偏移量计算出来。但是由于时区偏移量发生变化,我认为根据需要获得偏移量是谨慎的。所以这就是我正在寻找的。谢谢。谢谢!
 TimeZoneInfo timeZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
 TimeSpan offset = timeZone.GetUtcOffset(DateTime time);