我从Excel中获取一个字符串:"\"11/01/2011 16:00\""
在C#中修剪它的最有效方法是什么,因此可以将其解析为DateTime?
答案 0 :(得分:2)
你可能只是修剪字符串,但不确定格式是否一致
var trimmedString = excelString.Trim('\\', '"');
假设字符串包含斜杠和那些语音标记。如果它只是语音标记(因为visual studio在显示它时已经转义了字符串),那么你需要的只是
var trimmedString = excelString.Trim('"');
答案 1 :(得分:2)
您根本不需要修剪它 - 您只需拨打DateTime.ParseExact
或DateTime.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);