我从类似"1140421164500
"的设备中获得string
值。我必须将其转换为DateTime
类型。我想使用DateTime.ParseExact
函数。我知道我可以通过手动省略第一个字符来转换它,如下所示:
DateTime.ParseExact("140421164500", "yyMMddHHmmss", CultureInfo.InvariantCulture);
但我希望避免手动省略第一个字符。我想用ParseExact
函数中的wildcard
字符来忽略它,比如:
DateTime.ParseExact("1140421164500", "*yyMMddHHmmss", CultureInfo.InvariantCulture);
让我注意到,第一个字符可以是1表示夏令时为活动,也可以是0表示被动。该设备也可以像"0140101000000
"一样发送给我。
这个函数有类似的东西吗?
没有自定义日期和时间格式的通配符,它可以解析字符串中的每个可能的字符。
您可以将您的格式添加为字符串的第一个字符,如;
string s = "1140421164500";
Console.WriteLine(DateTime.ParseExact(s, s[0] + "yyMMddHHmmss",
CultureInfo.InvariantCulture));
输出将为;
4/21/2014 4:45:00 PM
此处为demonstration
。