Если вы посмотрите документацию для метода Convert.ChangeType
, вы увидите следующее примечание:
Исключения
InvalidCastException
Это преобразование не поддерживается.
-или-
value
равно null
и conversionType
является типом значения.
-или-
value
не реализует интерфейс IConvertible .
Поскольку мы знаем, что value
не является нулевым, а string
реализует интерфейс IConvertible
, тоединственная оставшаяся причина - первая:
Это преобразование не поддерживается.
Что мы можем do - сначала преобразовать его в DateTime
, а затем преобразовать в DateTimeOffset
.Существует некоторая документация здесь , которая описывает различные методы для достижения этой цели, один из которых:
"Вы также можете создать новое значение DateTimeOffset, назначив ему DateTimeзначение "
Так что мы можем просто сделать:
DateTimeOffset dateTimeOffset = (DateTime) Convert.ChangeType(dateString, typeof(DateTime));