2012-01-03 54 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);