Member 13801408 Ответов: 2

Строка не была распознана как допустимый формат даты и времени


У меня есть дата в виде int, которую я беру из имени файла, а время-из поля файла в виде строки.

Я пытаюсь получить ожидаемый результат в соответствии со строковым форматом. Я получаю ошибку что строка не была распознана как допустимый формат даты и времени

Любая помощь приветствуется, заранее спасибо.

Что я уже пробовал:

DateTime DTTM; 
int crdt = 20180418; 
string time = "15:20:37.6789" ;
 DTTM = DateTime.ParseExact(crdt + " " + time, "yyyy-MM-dd HH:mm:ss.FFFF tt", CultureInfo.InvariantCulture);


Ожидаемый результат : 2018-04-18 15:20:37.6789 PM

Member 13812021

Есть ли причина, по которой вы их разделяете? Откуда берутся "crdt" и "time"?

2 Ответов

Рейтинг:
2

Ravi Bhavnani

Очевидно, что ваша строка не соответствует вашему формату.  Разве вы не хотите использовать этот формат вместо этого?

yyyyMMdd HH:mm:ss.FFFF

/Рави


Рейтинг:
0

MadMyche

значение datetime.ParseExact() не имеет метода, который принимает принимает INT в качестве аргумента
Система.значение datetime.Метод parseexact[^]

Некоторые методы не любят INT внутри метода, даже если он при выполнении объединяется в строку.

Лучше всего было бы заранее натянуть струну, возможно, это сработает:

DateTime DTTM; 
int crdt = 20180418; 
string time = "15:20:37.6789" ;

// new
string timestring= crdt.ToString() + time;

// altered
DTTM = DateTime.ParseExact(timestring, "yyyyMMdd HH:mm:ss.FFFF", CultureInfo.InvariantCulture);


Richard Deeming

В C#, int + string == string.

Так crdt + " " + time в результате получится строка "20180418 15:20:37.6789", без int в поле зрения. :)