Разбор диапазона дат в C # - ASP.NET - PullRequest
1 голос
/ 22 ноября 2008

Скажем, скажем, 13.11.2008 - 12.11.2008 в качестве значения, отправленного обратно в TextBox, что было бы лучшим способом для анализа даты начала и окончания с использованием C #?

Я знаю, что мог бы использовать:

DateTime startDate = Convert.ToDateTime(TextBoxDateRange.Text.Substring(0, 10));
DateTime endDate = Convert.ToDateTime(TextBoxDateRange.Text.Substring(13, 10));

Есть ли лучший способ?

Ответы [ 2 ]

8 голосов
/ 22 ноября 2008
var dates = TextBoxDateRange.Text.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries);

var startDate = DateTime.Parse(dates[0], CultureInfo.CurrentCulture);
var endDate = DateTime.Parse(dates[1], CultureInfo.CurrentCulture);
2 голосов
/ 22 ноября 2008

Вместо Convert.ToDateTime, возможно, стоит использовать DateTime.Parse и явно указать желаемую культуру. Если я попробую этот пример с какой-либо европейской культурой, я получу сообщение об ошибке, потому что 13.11.2008 указывает на 11-й день 13-го месяца 2008 года ...

        CultureInfo ci = new CultureInfo("en-us");
        var startDate = DateTime.Parse(components[0], ci);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...