Конвертировать дату и время в другой формат - PullRequest
1 голос
/ 16 января 2020

Я пытаюсь преобразовать дату и время как 17 De c 2019 19: 13: 14: 850 в 17/12/2019 19:13, используя следующий код:

string dateTime = "17 Dec 2019 19:13:14:850";
DateTime dt = DateTime.ParseExact(dateTime,"dd:MM:yyyy hh:mm:ss:fff",CultureInfo.InvariantCulture);
string s = dt.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);

Но получаю сообщение об ошибке:

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

Ответы [ 2 ]

7 голосов
/ 16 января 2020

Формат вашей исходной строки на самом деле: "dd MMM yyyy hh:mm:ss:fff"

MM дает вам номер месяца, тогда как MMM дает вам сокращенное название месяца. Кроме того, поскольку вы используете ParseExact, вам необходимо избавиться от : s в части даты, поскольку они отсутствуют в вашей строке.

Затем, если вы хотите получить его для 17/12/2019 19:13 формат будет "dd/MM/yyyy hh:mm" - ваш также не указан, но я предполагаю, что это опечатка в исходном сообщении

Редактировать : как указал другой ответчик, Вы должны использовать HH вместо hh в обоих этих случаях, поскольку формат времени составляет 24 часа, поэтому:

"dd MMM yyyy HH:mm:ss:fff" и "dd/MM/yyyy HH:mm"

1 голос
/ 16 января 2020

Маленькая hh вызывает проблему здесь, когда вы анализируете 24-часовой формат.

Значения должны быть dd MMM yyyy HH:mm:ss:fff и dd/MM/yyyy HH:mm

Попробуйте следующее

string dateTime = "17 Dec 2019 19:13:14:850";
DateTime dt = DateTime.ParseExact(dateTime, "dd MMM yyyy HH:mm:ss:fff", CultureInfo.InvariantCulture);
string s = dt.ToString("dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...