时间间隔.ParseExact不能识别输入格式
本文关键字:识别 输入 格式 不能 ParseExact 时间 | 更新日期: 2023-09-27 18:17:40
我知道有很多这样的问题,但我似乎找不到我的答案。
我有这行c#代码:
var x = TimeSpan.ParseExact("800", "hmm", CultureInfo.InvariantCulture);
它抛出一个异常,说输入格式无效。如果我输入"0800"answers"嗯",它就能工作。我看到有人在TimeSpan-Conversions中使用单个"h",所以必须能够这样做。也没有需要转义的特殊字母。
我尝试使用CurrentCulture而不是InvariantCulture,但这并没有改变任何东西。现在,我填充我的字符串有0在左边,但我想知道,为什么TimeSpan-Parsing失败。
我不知道为什么会这样,也不知道它是在哪里记录的,但是TimeSpan.ParseExact
中似乎不支持三位数的时间跨度。所以你可以通过填充前导零来解决这个问题:
string ts = "800";
var x = TimeSpan.ParseExact(ts.PadLeft(4, '0'), "hhmm", CultureInfo.InvariantCulture);
我猜TimeSpan
不能解析这个的原因与DateTime.ParseExact
不能解析带有一个或两个数字月份且没有分隔符的7位数的原因有关。