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

本文关键字:字符 第一个 ParseExact DateTime | 更新日期: 2023-09-27 17:59:16

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

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

但我希望避免手动省略第一个字符。我想用ParseExact函数中的wildcard字符来忽略它,比如:

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

让我注意到,第一个字符可以是1表示夏令时为活动,也可以是0表示被动。该设备也可以像"0140101000000"一样发送给我。

这个函数有类似的东西吗?

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

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

您可以将您的格式添加为字符串的第一个字符,如;

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

输出将为;

4/21/2014 4:45:00 PM

此处为demonstration