から文字列をトリミング:"\"11/01/2011 16:00\""
は私がようにExcelから文字列を取得エクセル
それは日時として解析できるようにC#でこれをトリミングするための最も効率的な方法は何ですか?
から文字列をトリミング:"\"11/01/2011 16:00\""
は私がようにExcelから文字列を取得エクセル
それは日時として解析できるようにC#でこれをトリミングするための最も効率的な方法は何ですか?
あなたはおそらく単なる文字列、文字列を想定しています
var trimmedString = excelString.Trim('\\', '"');
はスラッシュとそれらの音声マークが含まれていてもフォーマットが可能になることをどのように一貫性のわからないトリムでした。あなただけDateTime.ParseExact
かを呼び出すことができます - それはちょうどスピーチマーク(それを表示するときにVisual Studioは、文字列をエスケープしているため)だならば、あなたが必要とするすべてはあなたがすべてでそれをトリミングする必要はありません
var trimmedString = excelString.Trim('"');
string myString = "\"11/01/2011 16:00\"";
DateTime time = DateTime.Parse(myString.Substring(1, myString.Length - 2));
常にその形式ですか?最初の3文字と最後の3文字を部分文字列に変換してから、特定の(提供された)日付形式の日付に解析できませんか?
タイムスタンプがないことがあります。 – slandau
この場合、ken2kの解決策は常に動作するはずです(私は思っています)。私は文化の問題を避けるためにDateTime.ParseExactを提案しようとしていましたが、今はしません!または、最初にタイムスタンプの長さをチェックする必要があるかもしれません。 –
s = s.Substring(1, s.Length-2);
です
string text = ...;
DateTime date = DateTime.ParseExact(text, "'\"'dd/MM/yyyy HH:mm'\"'",
CultureInfo.InvariantCulture);
私はそれがトリミングよりも効率的だかどうかわからない(より多くの解析がありますが、余分な文字列が作成しないように)が、私はその精度のためにそれを使用します:それぞれの終わりに引用符が含まれていDateTime.TryParseExact
場合は、これまでデータフォームが変更されます(例:見積もりがなくなったなど)。効果的にあなたの期待を述べているからです。
あなたはparseExactメソッドを探しています。
char[] trimChars = {'\"'};
string dateTime = "\"11/01/2011 16:00\"".Trim(trimChars);
DateTime result = DateTime.ParseExact(dateTime, "MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture);
これは機能します。ありがとうRay – slandau
完全免責事項、私は実際にJSの答えを好む。 – Ray