我试图创建一个包含“00:00:00.000”的时间跨度对象的一行代码。
我的时间格式是“HH:mm:ss.fff”,取自我的另一个项目中与此精确时间格式配合使用的代码。
但是它给出了不匹配的异常。
Chatgpt 和 stackoverflow 中的其他答案建议使用 CultureInfo 从 null 到下面的示例,但它执行完全相同的异常。
string timeFormat= "HH:mm:ss.fff";
TimeSpan timeZero = TimeSpan.ParseExact("00:00:00.000", timeformat, CultureInfo.InvariantCulture);
Timespan
解析与 DateTime
解析有 little不同。
来自文档:
重要
自定义 TimeSpan 格式说明符不包含占位符 分隔符,例如分隔日期和小时的符号, 小时与分钟,或秒与小数秒。相反,这些 符号必须作为字符串包含在自定义格式字符串中 文字。例如,
将句点 ("dd\.hh\:mm"
) 定义为 天和小时之间的分隔符,以及冒号 (.
) 作为分隔符 几小时和几分钟之间。:
此外,
HH
没有 TimeSpan
说明符,应该改为 hh
。顺便说一句 timeFormat
和 timeformat
是不同的名称,在 C# 中,这些名称区分大小写,您也需要修复它。
string timeFormat = @"hh\:mm\:ss\.fff";
TimeSpan timeZero = TimeSpan.ParseExact("00:00:00.000", timeFormat,
CultureInfo.InvariantCulture);