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不适用于我的问题,我想指定格式。