C# 从字符串到日期时间的转换出现问题

C# 从字符串到日期时间的转换出现问题,c#,datetime,C#,Datetime,我在将字符串转换为DateTime时遇到问题 我收到的值为08-26-2015 10:14:57.898Z 我正在尝试将上面的字符串转换为DateTime 我的代码: DateTime.ParseExact(element.Value,"MM/dd/yyyy HH:mm:ss",CultureInfo.CurrentCulture); 例外情况: 字符串未被识别为有效的日期时间。是否尝试转换为Convert.ToDateTime? 我刚试过你的绳子,效果很好: var s = "08-26-2

我在将字符串转换为DateTime时遇到问题

我收到的值为08-26-2015 10:14:57.898Z

我正在尝试将上面的字符串转换为DateTime

我的代码:

DateTime.ParseExact(element.Value,"MM/dd/yyyy HH:mm:ss",CultureInfo.CurrentCulture);
例外情况:
字符串未被识别为有效的日期时间。

是否尝试转换为Convert.ToDateTime? 我刚试过你的绳子,效果很好:

var s = "08-26-2015 10:14:57.898Z";
var date = Convert.ToDateTime(s);

您的字符串的格式与您尝试转换的格式不同

试试这个

var input = "08-26-2015 10:14:57.898Z";
var date = DateTime.ParseExact(input, "MM-dd-yyyy hh:mm:ss.fff'Z'", CultureInfo.InvariantCulture);
现在,日期变量包含所需的日期时间值。

您可以使用:

DateTime dt = DateTime.ParseExact("08-26-2015 10:14:57.898Z", "MM-dd-yyyy hh:mm:ss.fff'Z'", CultureInfo.InvariantCulture);

如果使用CultureInfo.CurrentCultureO或null,则斜杠/具有特殊含义。它将替换为当前区域性的日期分隔符。因为这不是,但在美国你会得到一个例外

您当前的区域性是什么?@juharr-即使我尝试使用CultureInfo.InvariantCulture,我也会遇到相同的异常。我当前的区域性=en Ust问题是日期分隔符。对我们和Invaiant来说,这是一个斜杠/而不是一个破折号-。正如其他人提到的,您可能希望使用DateTime.Parse或Convert.ToDateTime,或者指定您希望在格式中使用破折号作为分隔符。您还需要指定毫秒和结尾的Z。最好使用CultureInfo.InvariantCulture,以防当前区域性使用的是冒号以外的时间分隔符:@Joe感谢您的建议:-仍然面临问题,尝试使用X-TECh解决方案,结果很好。很高兴知道您找到了解决方案:
DateTime dt = DateTime.ParseExact("08-26-2015 10:14:57.898Z", "MM-dd-yyyy hh:mm:ss.fff'Z'", CultureInfo.InvariantCulture);