在C#中将UTC + 1转换为UTC时间

时间:2016-11-01 14:49:19

标签: c# datetime

当您遇到类似这样的场景时,在C#中将UTC + 1转换为UTC的最佳解决方案是什么:

从客户端我向服务器发送请求。服务器从客户端获取数据并将其保存在具有以下内容的对象中:

字符串日期 字符串时间 字符串TimeZone

性质。 TimeZone属性包含这样的内容:"Central Europe Standard Time"

使用此代码:

var infos = TimeZoneInfo.GetSystemTimeZones();
var timeZone = infos.FirstOrDefault(x => x.Id == testSessionViewModel.TimeZone);
TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById(testSessionViewModel.TimeZone);

我能够发现"Central Europe Standard Time"实际上是UTC + 1。

timeZone对象具有此值(相同的值具有tz,这是实现相同的两种方式,用于测试目的):

enter image description here

现在我想以某种方式使用此信息将UTC + 1时间转换为UTC。

我的想法是:

  1. 获取日期和时间字符串并将它们连接成一个字符串。
  2. 将该字符串解析为DateTime
  3. 以某种方式获得+1值(可能来自BaseUtcOffset propery)
  4. enter image description here

    1. 减去1小时以获得UTC时间。
    2. 这对我来说看起来很混乱。所以我的问题是之前有人做过这样的事情并且有更好的想法或实践。

      其他需要的是:而不是从客户端向服务器发送"Central Europe Standard Time"并执行所有转换操作,寻找时区等。 也许我可以发送sting 1,当我选择UTC + 1,并将其转换为某种数字类型,并在添加或减去时间时直接使用该值。

      我愿意接受更多想法:)

0 个答案:

没有答案