将字符串转换为标准c#datetime

将字符串转换为标准c#datetime,c#,string,datetime,C#,String,Datetime,我有这根绳子 2018年11月1日10:50我想把它转换成这样的日期时间格式 2018-11-01 10:50:00.000 我试过这个 DateTime.ParseExact("01 Nov 2018 10:50", "yyyy-MM-dd HH:mm:ss,fff", null) 但我有个例外 System.FormatException:'字符串未被识别为有效的 日期时间。” 请尝试其他格式: var date = DateTime.ParseExact("01 Nov 2018 10

我有这根绳子
2018年11月1日10:50
我想把它转换成这样的日期时间格式
2018-11-01 10:50:00.000

我试过这个

DateTime.ParseExact("01 Nov 2018 10:50", "yyyy-MM-dd HH:mm:ss,fff",  null)
但我有个例外

System.FormatException:'字符串未被识别为有效的 日期时间。”

请尝试其他格式:

var date = DateTime.ParseExact("01 Nov 2018 10:50", "dd MMM yyyy HH:mm")
拥有
date
对象后,可以将其转换为所需的格式:

date.ToString("yyyy-MM-dd HH:mm:ss,fff");

ParseExact
需要一个与输入匹配的格式定义作为第二个参数

与您的输入匹配的格式定义是“dd-MMM-yyy-HH:mm”


有关有效的格式定义,请参阅。

当您使用
ParseExact
时,应该在方法的第二个参数上传递要解析的确切格式。您正在为
ParseExact
方法设置完全不同的格式。试试这个:

DateTime.ParseExact("01 Nov 2018 10:50", "dd MMM yyyy HH:mm",  null)

这里有完整的参考资料:

您认为格式字符串(yyyy-MM…)是什么意思?请参考我认为有
不是
是的。首先,你为什么认为“11月1日”可以和“yyyy-MM”分开?小时、分钟等的位置。可能的重复项看起来像是在使用excel,它用逗号分隔毫秒。请尝试用句点替换逗号,然后重试。