DateTime.ParseExact忽略第一个字符C#

我从“ 1140421164500 ”这样的设备中获取string值。 我必须将其转换为DateTime类型。 我想使用DateTime.ParseExact函数。 我知道我可以通过手动省略第一个字符来转换它,如下所示:

 DateTime.ParseExact("140421164500", "yyMMddHHmmss", CultureInfo.InvariantCulture); 

但我想避免手动省略第一个字符。 我想在ParseExact函数中使用wildcard字符忽略它,如:

 DateTime.ParseExact("1140421164500", "*yyMMddHHmmss", CultureInfo.InvariantCulture); 

让我注意,第一个char可以是1,夏令时是活动的,0是被动的。 该设备也可以发送给我,如“ 0140101000000 ”。

这个function有什么相似之处吗?

自定义日期和时间格式中没有通配符可以解析字符串中的每个可能字符。

您可以将您的格式添加到字符串的第一个字符中;

 string s = "1140421164500"; Console.WriteLine(DateTime.ParseExact(s, s[0] + "yyMMddHHmmss", CultureInfo.InvariantCulture)); 

输出将是;

 4/21/2014 4:45:00 PM 

这是一个demonstration