Dav*_*New 7 .net c# datetime parsing type-conversion
使用时TypeConverter.ConvertFromString(),我需要在解析字符串中的数据时提供自定义格式(例如,使用DateTime:"ddMMyyyy"或"MMMM dd, yyyy").
TypeConverter.ConvertFromString() 有以下重载:
public object ConvertFromString(ITypeDescriptorContext context,
CultureInfo culture,
string text);
Run Code Online (Sandbox Code Playgroud)
我在MSDN上查了一下ITypeDescriptorContext.
ITypeDescriptorContext接口提供有关组件的上下文信息.ITypeDescriptorContext通常在设计时用于提供有关设计时容器的信息.此接口通常用于类型转换.
这听起来像我需要使用但我在任何地方都找不到任何例子.
我使用以下通用方法:
public T ParseValue<T>(string value)
{
return (T)TypeDescriptor.GetConverter(typeof(T)).ConvertFromString(value);
}
Run Code Online (Sandbox Code Playgroud)
调用代码示例:
DateTime date = ParseValue<DateTime>("02062001");
decimal amount = ParseValue<decimal>("1.3423");
Run Code Online (Sandbox Code Playgroud)
我希望能够将某种通用格式信息解析为此ParseValue()方法,可以使用ConvertFromString().
您可以创建自定义 CultureInfo ,保存您的格式。
另一个解决方案是在某些辅助方法中进行 Wrap 转换,该方法将使用 DateTime.Parse 来处理日期,使用 TypeConverter 来处理其他类型。