C # Дата Разбор Точный выпуск - PullRequest
0 голосов
/ 16 ноября 2009

Следующий код выдает ошибку, есть идеи почему?

string dateFormatString = "dd.MM.yyyy HH:mm:ss";
string properDate = DateTime.ParseExact(DateTime.Now.ToString() , dateFormatString , null ).ToString()

Ошибка: строка не распознается как действительные дата и время.

Ответы [ 4 ]

3 голосов
/ 16 ноября 2009

DateTime.Now.ToString() форматирует дату, используя текущую культуру. Вам нужно указать тот же формат: DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss"), что ожидается функцией ParseExact.

1 голос
/ 16 ноября 2009
0 голосов
/ 16 ноября 2009

Ваша местная культура записывает даты как "дд.мм.гггг ЧЧ: мм: сс"? Проще говоря: если дата ToString() не создает этот макет, то она не будет анализироваться без ошибок, а ParseExact - это , а не , что очень простительно.

Мне интересно, если вы действительно хотите позвонить:

string s = DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss");
0 голосов
/ 16 ноября 2009

Вы можете просто сделать:

string dateFormatString = "dd/MM/yyyy HH:mm:ss";
string properDate = DateTime.Now.ToString(dateFormatString);

РЕДАКТИРОВАТЬ: Согласно вашим комментариям, вы пытаетесь подобрать формат, распространенный в Чешской Республике. Вы должны использовать CultureInfo, чтобы сделать это:

string properDate = DateTime.Now.ToString(new CultureInfo("cs-CZ"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...