首页 > 解决方案 > 如何将此字符串“2020-05-25 15:25:40 EEST”转换为有效的 DateTimeUtc?

问题描述

我有一个如下的日期时间值,我想将其转换为 C# 中的日期时间 UTC。

var dateTime = "2020-05-25 15:25:40 EEST"; 

我尝试了 DateTime.ParseExact 和 DateTime.TryParse,但出现以下错误:

System.FormatException:'字符串'2020-05-25 15:25:40 EEST'未被识别为有效的日期时间。'

我需要输出类似这样的内容`2020-02-24 12:09:42.103。

标签: c#.net

解决方案


转换日期格式的一种方法是escape“EEST”时区信息!

您可以在另一个问题中找到详细信息,Parse string date (EEST included) but it fails.

在您的情况下,以下代码将有所帮助:

var dateTime = "2020-05-25 15:25:40.123 EEST";
string format = "yyyy-MM-dd HH:mm:ss.fff 'EEST'";
DateTime dt = DateTime.ParseExact(dateTime, format, CultureInfo.InvariantCulture);

Console.WriteLine(dt.ToUniversalTime());

推荐阅读