C# 将时区转换为双时区

C# 将时区转换为双时区,c#,timezone,C#,Timezone,我想知道如何转换您从 TimeZoneInfo.Local.BaseUtcOffset.TotalHours.ToString()(在本例中,输入的代码将显示一个数字-7,我的时区)。问题是,如果我用Convert.ToDouble()方法将这行代码括起来,它会因为负号而给出一个错误。如果我所在的时区没有负面符号,那就不会有问题。有没有办法只得到数字而不是负号?(稍后我可以计算出负TIMZ区域…通过Math.Abs方法获取绝对值,如下所示: int value = (int)Math.Abs(T

我想知道如何转换您从

TimeZoneInfo.Local.BaseUtcOffset.TotalHours.ToString()
(在本例中,输入的代码将显示一个数字-7,我的时区)。问题是,如果我用
Convert.ToDouble()
方法将这行代码括起来,它会因为负号而给出一个错误。如果我所在的时区没有负面符号,那就不会有问题。有没有办法只得到数字而不是负号?(稍后我可以计算出负TIMZ区域…

通过
Math.Abs
方法获取绝对值,如下所示:

int value = (int)Math.Abs(TimeZoneInfo.Local.BaseUtcOffset.TotalHours);

注意:这将使
-7
返回
7

通过
Math.Abs
方法获得绝对值,如下所示:

int value = (int)Math.Abs(TimeZoneInfo.Local.BaseUtcOffset.TotalHours);

注意:这将使
-7
返回
7

您首先调用
ToString
有什么原因吗
TotalHours
本身返回一个double,因此您可以将其存储在一个变量中,而不是使用
Convert.ToDouble()
Karl的答案是您要求的,但请确保您不仅仅将此数字存储为“时区”。时区不能仅用一个数字表示。请参见中的“时区!=偏移”。您需要使用
TimeZoneInfo.Local.Id
中的字符串。您首先调用
ToString
有什么原因吗
TotalHours
本身返回一个double,因此您可以将其存储在一个变量中,而不是使用
Convert.ToDouble()
Karl的答案是您要求的,但请确保您不仅仅将此数字存储为“时区”。时区不能仅用一个数字表示。请参见中的“时区!=偏移”。相反,您需要使用
TimeZoneInfo.Local.Id
中的字符串。