2012-01-03 7 views

答えて

2

あなたはおそらく単なる文字列、文字列を想定しています

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

はスラッシュとそれらの音声マークが含まれていてもフォーマットが可能になることをどのように一貫性のわからないトリムでした。あなただけDateTime.ParseExactかを呼び出すことができます - それはちょうどスピーチマーク(それを表示するときにVisual Studioは、文字列をエスケープしているため)だならば、あなたが必要とするすべてはあなたがすべてでそれをトリミングする必要はありません

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

これは機能します。ありがとうRay – slandau

+0

完全免責事項、私は実際にJSの答えを好む。 – Ray

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

常にその形式ですか?最初の3文字と最後の3文字を部分文字列に変換してから、特定の(提供された)日付形式の日付に解析できませんか?

+0

タイムスタンプがないことがあります。 – slandau

+0

この場合、ken2kの解決策は常に動作するはずです(私は思っています)。私は文化の問題を避けるためにDateTime.ParseExactを提案しようとしていましたが、今はしません!または、最初にタイムスタンプの長さをチェックする必要があるかもしれません。 –

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

です

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

私はそれがトリミングよりも効率的だかどうかわからない(より多くの解析がありますが、余分な文字列が作成しないように)が、私はその精度のためにそれを使用します:それぞれの終わりに引用符が含まれていDateTime.TryParseExact場合は、これまでデータフォームが変更されます(例:見積もりがなくなったなど)。効果的にあなたの期待を述べているからです。

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); 
関連する問題