如何将此字符串转换为日期时间

Rob*_*bin 1 c# format datetime

我尝试过各种格式但似乎没什么用.字符串是:

2018-06-04T09:07:30:507Z

我得到的错误是字符串不是正确的日期时间格式我尝试的一切.我首先发现/认为字符串是ISO 8601格式,但这似乎也是错误的.

我不认为它应该重要,但我从XML输入中获取此字符串,这是我用于此的代码(使用最新的变体我尝试使其工作):

foreach (XmlNode node in parentNode)
            {
                foreach (XmlNode child in node)
                {
                    switch (child.Name)
                    {
                        case "ShopId":
                            advance.ShopId = child.InnerText;
                            break;
                        case "CustomerId":
                            advance.CustomerId = child.InnerText;
                            break;
                        case "Reference":
                            advance.Reference = child.InnerText;
                            break;
                        case "Amount":
                            advance.Amount = decimal.Parse(child.InnerText.Replace('.', ','));
                            break;
                        case "DateStart":
                            advance.DateStart = DateTime.Parse(child.InnerText, null, System.Globalization.DateTimeStyles.RoundtripKind);
                            break;
                        case "DateEnd":
                            advance.DateEnd = DateTime.Parse(child.InnerText);
                            break;
                        default:
                            break;
                    }
                }
            }
Run Code Online (Sandbox Code Playgroud)

bom*_*ing 5

您可以手动选择格式:

DateTime.ParseExact(date, "yyyy-MM-ddTHH:mm:ss:fffZ", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

我认为有一个标准模式,但我找不到一个接受中间"T"的人,因为juharr指出,传入的数据不是标准格式.所以它必须是自定义格式.