从Excel中修剪一个string

我从Excel中得到一个string,如下所示: "\"11/01/2011 16:00\""

在C#中修改这个最有效的方法是什么,所以它可以被parsing为一个DateTime?

你可能只是修剪string,不知道该格式将如何一致

 var trimmedString = excelString.Trim('\\', '"'); 

这是假定该string包含斜线和那些语音标记。 如果只是语音标记(因为Visual Studio在显示时已经脱离了string),那么您只需要

 var trimmedString = excelString.Trim('"'); 

你不需要修剪它 – 你可以调用DateTime.ParseExactDateTime.TryParseExact ,它包含在每一端的引号:

 string text = ...; DateTime date = DateTime.ParseExact(text, "'\"'dd/MM/yyyy HH:mm'\"'", CultureInfo.InvariantCulture); 

我不知道这是否比修剪更有效率(有更多的parsing,但没有额外的string来创build),但我会用它的精度:如果数据表单更改(例如不再有一个报价),你会发现因为你有效地陈述你的期望。

 string myString = "\"11/01/2011 16:00\""; DateTime time = DateTime.Parse(myString.Substring(1, myString.Length - 2)); 

总是以这种格式? 你不能只是子string的前3个和最后3个字符,然后parsing到具有特定(提供)date格式的date?

 s = s.Substring(1, s.Length-2); 

您正在寻找parseExact方法。

 char[] trimChars = {'\"'}; string dateTime = "\"11/01/2011 16:00\"".Trim(trimChars); DateTime result = DateTime.ParseExact(dateTime, "MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture);