Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用Convert.ChangeType而不是DateTime.ParseExact?_C#_Datetime - Fatal编程技术网

C# 如何使用Convert.ChangeType而不是DateTime.ParseExact?

C# 如何使用Convert.ChangeType而不是DateTime.ParseExact?,c#,datetime,C#,Datetime,我正在编写一个解析器类,它使用自定义格式将字符串解析为类型 例如,我想使用Parse(“20161018”,typeof(DateTime),UnknownFormatProvider)并返回解析后的DateTime 我知道我可以使用DateTime.ParseExact将特定格式的string转换为DateTime,但出于上述原因,我必须使用Convert.ChangeType(对象、类型、IFormatProvider) 有没有办法创建一个IFormatProvider以在Convert.C

我正在编写一个解析器类,它使用自定义格式将
字符串
解析为
类型

例如,我想使用
Parse(“20161018”,typeof(DateTime),UnknownFormatProvider)
并返回解析后的
DateTime

我知道我可以使用
DateTime.ParseExact
将特定格式的
string
转换为
DateTime
,但出于上述原因,我必须使用
Convert.ChangeType(对象、类型、IFormatProvider)

有没有办法创建一个
IFormatProvider
以在
Convert.ChangeType(对象、类型、IFormatProvider)
中使用,使其像
DateTime.ParseExact一样工作

编辑:也许
System.Globalization.DateTimeFormatInfo
应该可以工作,但我 仍然不知道如何将其设置为类似于
DateTime.ParseExact

有没有办法创建一个
IFormatProvider
以在中使用
Convert.ChangeType(对象、类型、IFormatProvider)
就像
DateTime.ParseExact

我不这么认为

Convert.ChangeType(对象, 类型代码, IFormatProvider)
转换.ChangeType(对象, 类型, IFormatProvider)
重载使用引擎盖下的方法 
TypeCode.DateTime
typeof(DateTime)
作为第二个参数

该方法解释为:

使用将此实例的值转换为等效的日期时间 指定的区域性特定格式信息

我认为这两种重载只接受
IFormatProvider
参数使用的标准日期和时间格式,如果这些
object
作为第一个参数是
string


这意味着此方法重载不接受第一个参数的任何自定义日期和时间字符串。

CultureInfo.CurrentCulture不适用于我的问题,我想指定格式。