【发布时间】:2014-06-05 14:35:10
【问题描述】:
我从像“1140421164500”这样的设备获得了string 值。我必须将其转换为DateTime 类型。我想使用DateTime.ParseExact 函数。我知道我可以通过手动省略第一个字符来转换它,如下所示:
DateTime.ParseExact("140421164500", "yyMMddHHmmss", CultureInfo.InvariantCulture);
但我想避免手动省略第一个字符。我想在ParseExact 函数中使用wildcard char 来忽略它,例如:
DateTime.ParseExact("1140421164500", "*yyMMddHHmmss", CultureInfo.InvariantCulture);
请注意,第一个字符可以是 1 表示夏令时是主动的,或者 0 表示被动。该设备还可以向我发送“0140101000000”之类的信息。
这个功能有类似的东西吗?
【问题讨论】:
-
为什么不能在调用 ParseExact 之前使用字符串操作函数删除字符?
-
为什么不只是普通的字符串操作?即取输入的子字符串?
-
如何编写自己的格式提供程序来识别
*? -
@jle 我不想要它,因为我有一个库正在对这些字符串进行计算/转换,我只能提供字符串值的格式字符串。由于我的库的这种限制,我无法操作字符串(它在内部被 cautgh)。现在我发现除了修改我的库之外没有其他解决方案。