从Excel修剪字符串

时间:2012-01-03 16:47:59

标签: c# .net string excel

我从Excel中获取一个字符串:"\"11/01/2011 16:00\""

在C#中修剪它的最有效方法是什么,因此可以将其解析为DateTime?

6 个答案:

答案 0 :(得分:2)

你可能只是修剪字符串,但不确定格式是否一致

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

假设字符串包含斜杠和那些语音标记。如果它只是语音标记(因为visual studio在显示它时已经转义了字符串),那么你需要的只是

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

答案 1 :(得分:2)

您根本不需要修剪它 - 您只需拨打DateTime.ParseExactDateTime.TryParseExact,其中包含两端的引号:

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

我不知道这是否比修剪更有效(有更多的解析,但没有额外的字符串可以创建)但我会用它的精度:如果数据形式发生变化(例如,不再有引用)你我会发现,因为你有效地陈述了你的期望。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

总是采用那种格式?难道你不能只对前3个和后3个字符进行子串,然后解析为具有特定(提供)日期格式的日期吗?

答案 4 :(得分:0)

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

答案 5 :(得分:0)

您正在寻找parseExact方法。

char[] trimChars = {'\"'};
string dateTime = "\"11/01/2011 16:00\"".Trim(trimChars);

DateTime result = DateTime.ParseExact(dateTime, "MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture);