преобразование строки в действительное время - PullRequest
1 голос
/ 15 июня 2010
string strdate="15/06/2010";

DateTime dt = 
     DateTime.Parse(strdate, 
     System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat);

Я не могу получить значение даты и времени как дд / мм / гггг. он дает исключение: «строка не распознана как допустимое время даты»

oly, если это в 15.06.2010, это работает. как получить тот же формат в DT.

Ответы [ 2 ]

4 голосов
/ 15 июня 2010

Ну, по-видимому, текущая культура вашего потока ожидает MM / dd / yyyy.Если вы хотите использовать dd / MM / yyyy, вы должны указать это явно.Лично я предпочитаю ParseExact вместо Parse, так как это дает больше контроля.Я бы использовал что-то вроде:

DateTime dt = DateTime.ParseExact(strdate, "dd/MM/yyyy",
    CultureInfo.InvariantCulture);

Обратите внимание, что если это пользовательский ввод, вы можете использовать TryParseExact.

0 голосов
/ 15 июня 2010

В настоящее время вы используете текущую культуру, которая, похоже, настроена для форматов дат в американском стиле.Попробуйте вместо этого:

DateTime.Parse(strdate, System.Globalization.CultureInfo.CreateSpecificCulture("en-GB"));

Это говорит функции использовать формат даты в Великобритании, который работает.Возможно, вы захотите изменить en-GB на ту культуру, в которой будут присутствовать ваши даты. Если у вас много звонков, для которых важна культура, возможно, стоит установить ее для всей цепочки, а не звонить по телефону.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...