从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.ParseExact
或DateTime.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);