У меня проблема с DateTime разбором и форматированием строк. Строка формата, которую я предоставляю, выглядит нормально, каждый символ и разделитель из строки формата соответствуют цифре или символу из строки даты. В частности, ошибка гласит: FormatException: неверная строка формата . Я использую Mono C#, как поставляется с игровым движком Unity3D.

< Сильный > Ошибка:

«FormatException: неверная строка формата»

< Сильный > Код:

string date_string = "3/9/2017 19:50";    
string date_format_string = "M/d/yyyy HH:mm";
print("string value: [" + date_string + "]");
print("format string: [" + date_format_string + "]");
DateTime new_dt = DateTime.ParseExact(date_string, date_format_string, CultureInfo.InvariantCulture);

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

Любая помощь будет оценена, спасибо!

1
Austin Yarger 2 Май 2017 в 06:40

3 ответа

Лучший ответ

Вам нужно изменить эту строку:

string date_format_string = "M/d/yyyy HH:mm";

В следующем правильном формате:

string date_format_string = "MM/dd/yyyy HH:mm";

Добавить ведущие нули на свидание

string date_string = "3/9/2017 19:50"; 

Нравится

string date_string = "03/09/2017 19:50";

Подробнее о форматировании в DateTime.ParseExact вы можете прочитать в здесь

0
Samvel Petrosov 3 Май 2017 в 03:01

Надеюсь, это поможет вам,

DateTime date = DateTime.Now;
string dateWithFormat = date.ToLongDateString();

Вы можете дополнительно изменить формат строки. Вы можете сделать это с помощью date.ToString("dd - MM - yyyy");, который выведет что-то вроде 02 - 05 - 2017

Отослать это

0
user688 2 Май 2017 в 04:49

У меня тоже была эта проблема.

Я исправил это, убедившись, что это было по умолчанию 1000-01-01 00:00:00.

Это связано с тем, что при чтении «0000-00-00 00:00:00» происходит ошибка, поскольку самое низкое из возможных значений: 1000-01-01 00:00:00.

0
Jesse J. 7 Ноя 2017 в 18:48