【问题标题】:How can I get the TimeZone from string?如何从字符串中获取 TimeZone?
【发布时间】:2019-11-19 15:59:00
【问题描述】:

我有一个字符串,其中包含带有时间和时区的日期。 我想将其转换为datetime,并在字符串中给出相同的时区。

我已经尝试将字符串转换为datetime,但它会将datetime 转换为我的系统时区,这与字符串中给定的时区不同。

Convert.ToDateTime("2019-01-20T08:30:00+02:00") 

将其转换为我的本地时区,即 +05:30。

【问题讨论】:

  • 你想用哪种格式打印你的日期
  • 您可以按照@Salah Akbari 的回答中的建议提取时间偏移量,但您无法确定时区。更多细节在这里:stackoverflow.com/questions/22159386/…

标签: c# .net datetime timezone


【解决方案1】:

您可以为此使用DateTimeOffset,而不是DateTime

DateTimeOffset dateTime = DateTimeOffset.Parse("2019-01-20T08:30:00+02:00",
    CultureInfo.InvariantCulture);

别忘了在你的 using 语句中添加以下内容:

using System.Globalization;

【讨论】:

  • 值得注意的是,您说的是时间偏移,而不是时区。不同之处:大多数时区每年更改两次偏移(夏令时)。时区由 .NET 中的 TimeZoneInfo 类表示,并由字符串 id 标识。
猜你喜欢
  • 2014-12-23
  • 2013-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-15
  • 2011-11-30
  • 2017-07-28
  • 2012-07-23
相关资源
最近更新 更多