TimeSpan 时间格式不匹配 C#

问题描述 投票:0回答:1

我试图创建一个包含“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);
c# datetime format datetime-format timespan
1个回答
1
投票

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);
© www.soinside.com 2019 - 2024. All rights reserved.