【问题标题】:Problem converting date time string to proper date time value将日期时间字符串转换为正确的日期时间值时出现问题
【发布时间】:2020-10-05 10:08:55
【问题描述】:

我从 API 接收到一个日期时间字符串,我试图将其转换为 DateTime 变量,但是当我执行相反操作时,它总是给我错误的时间。

这是我从 api 获得的值之一:

2020-04-21T21:44:34Z

我试图将其恢复为 2020 年 4 月 21 日下午 9:44:34,但它一直给我 2020 年 4 月 21 日下午 4:44:34。 (分钟、秒和日期是正确的。)

我试过了……

DateTime startTimeStr = Convert.ToDateTime("2020-04-21T21:44:34Z")

...和

DateTime startTimeStr = DateTime.Parse("2020-04-21T21:44:34Z");

两者都给我下午 4 点的时间,而不是晚上 9 点。

【问题讨论】:

标签: c# datetime asp.net-core


【解决方案1】:

尝试在解析结果上调用.ToUniversalTime()

DateTime startTimeStr = DateTime.Parse("2020-04-21T21:44:34Z").ToUniversalTime();

或者在对应的Parse重载上指定DateTimeStyles.AdjustToUniversal

DateTime startTimeStr = DateTime.Parse("2020-04-21T21:44:34Z", null, DateTimeStyles.AdjustToUniversal);

如果没有 DateTime.Parse 解析 DateTime 并将其调整为您的本地时区(检查 DateTime.Kind 属性将为您提供 DateTimeKind.Local)。

【讨论】:

  • 是的。做到了。谢谢!
  • @David 很乐意提供帮助!如果对您有用,请将答案标记为已接受(绿色检查图像)=)
猜你喜欢
  • 2014-09-21
  • 2015-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-18
  • 1970-01-01
相关资源
最近更新 更多