Сообщение об ошибке вы предоставили:
значение времени содержит компонент даты, не разрешается
Не стандартное сообщение от каких-либо исключений в. NET Framework. Вы сказали (в комментариях), что используете стороннюю dll. Исключение, скорее всего, связано с этой dll.
Не зная подробностей об этой DLL, я не могу предложить много советов. Однако я могу сделать некоторые предположения. Вы сказали, что вы делаете что-то вроде этого:
thirdPartyObject.Date = DateTime.UtcNow.ToString
Если это даже компиляции того Date
свойства на объекте не типа DateTime
. Это либо string
, либо object
.
Вы также сказали, что вы пытались:
thirdPartyObject.Date = DateTime.UtcNow
Если это компилирует и бросает исключение, вы упомянули, то он не может быть string
. Поэтому я пришел к выводу, что он должен быть типа object
.
Это довольно странно. Объект третьей стороны имеет свойство типа object
под названием Date
, которому требуется только время? Кто бы ни разрабатывал этот API, возможно, не думал об удобстве использования!
Как супер-дикого осла догадаться, я хотел бы попробовать что-то вроде этого:
thirdPartyObject.Date = DateTime.MinValue + DateTime.UtcNow.TimeOfDay
Или, может быть, ли хочет строку, то попробуйте:
thirdPartyObject.Date = DateTime.UtcNow.ToString("HH:mm:ss")
Если вы может уточнить, какой сторонний объект вы используете, или как выглядит его API для свойства Date
, то, возможно, я смогу уточнить свой ответ.
Я пробовал это, Dim d As Date = Date.UtcNow, который работал. Отредактируйте свой пост, чтобы показать, что не работает. – dbasnett
@dbasnett: Я присваиваю 'Date.UtcNow' свойство' Date' в сторонней DLL. Я не знаю, является ли это проблемой для разных версий .NET, или это то, что DLL была написана на C#, но я использую ее в VB.NET. Единственный способ обойти это - использовать 'Date.UtcNow.ToString'. – CJ7