2012-01-03 74 views
0

字符串我从Excel中得到一个字符串像这样:"\"11/01/2011 16:00\""微调从Excel

是什么在C#中修剪此,因此它可以被解析为一个日期时间的最有效方法是什么?

回答

2

你很可能只是修剪串,不知道如何一致的格式将是虽然

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

这是假设字符串中包含的斜杠和那些讲话的痕迹。如果它只是语音标记(原因是Visual Studio逃脱显示它当字符串),那么你需要的是

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

这有效。谢谢雷 – slandau 2012-01-03 16:53:25

+0

完全免责声明,我真的更喜欢JS的答案。 – Ray 2012-01-03 17:14:33

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

总是以那种格式?你不能只是将前3个和后3个字符串分解,然后用特定的(提供的)日期格式解析为日期?

+0

有时可能没有时间戳。 – slandau 2012-01-03 16:51:58

+0

在这种情况下,ken2k的解决方案应该始终工作(我认为)。我正要建议DateTime.ParseExact避免文化问题,但我现在不会!或者您可能需要首先检查时间戳的长度。 – 2012-01-03 16:55:54

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

你并不需要修剪它在所有 - 你可以叫DateTime.ParseExactDateTime.TryParseExact其中包含两端的报价:

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

我不知道这是否是不是调整更有效(有更多的分析,但没有多余的字符串创建),但我会用它来满足精度:如果有的话数据表单会发生变化(例如,不再有报价)找出因为你有效地陈述你的期望。

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);