Обрезка строки из Excel - PullRequest
       2

Обрезка строки из Excel

0 голосов
/ 03 января 2012

Я получаю строку из Excel следующим образом: "\"11/01/2011 16:00\""

Какой самый эффективный способ обрезать это в C #, чтобы его можно было проанализировать как DateTime?

Ответы [ 6 ]

2 голосов
/ 03 января 2012

Вам вообще не нужно его обрезать - вы можете просто позвонить DateTime.ParseExact или DateTime.TryParseExact, который содержит кавычки на каждом конце:

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

Я не знаю, эффективнее ли это, чем обрезка (есть больше разбора, но нет дополнительной строки для создания), но я бы использовал это для его точности: если когда-либо изменится форма данных (например, больше нет кавычек), вы Вы узнаете, потому что вы эффективно излагаете свои ожидания.

2 голосов
/ 03 января 2012

Вы могли бы просто обрезать строку, не зная, насколько согласованным будет этот формат, хотя

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

Это предполагает, что строка содержит косые черты и эти речевые метки.Если речь идет только о речевых метках (поскольку visual studio избежала строки при ее отображении), тогда все, что вам нужно, это

var trimmedString = excelString.Trim('"');
0 голосов
/ 03 января 2012

Вы ищете метод parseExact .

char[] trimChars = {'\"'};
string dateTime = "\"11/01/2011 16:00\"".Trim(trimChars);

DateTime result = DateTime.ParseExact(dateTime, "MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture);
0 голосов
/ 03 января 2012
s = s.Substring(1, s.Length-2);
0 голосов
/ 03 января 2012

Всегда в этом формате? Разве вы не можете просто вставить первые 3 и последние 3 символа, а затем выполнить синтаксический анализ даты с определенным (предоставленным) форматом даты?

0 голосов
/ 03 января 2012
string myString = "\"11/01/2011 16:00\"";
DateTime time = DateTime.Parse(myString.Substring(1, myString.Length - 2));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...