输入字符串格式不正确.在时间间隔

本文关键字:时间 不正确 字符串 格式 输入 | 更新日期: 2023-09-27 18:16:04

TimeSpan newEventStartTime = TimeSpan.ParseExact(Start_Time, "HH:mm", CultureInfo.InvariantCulture);

当这行代码执行时,它会产生一个错误。变量Start_Time数据类型在c#中是字符串,在java脚本中它的数据类型是时间。

输入字符串格式不正确.在时间间隔

不久前,我自己也遇到了这样的麻烦。这里有一些东西需要在你的格式字符串中修改。

  1. 由于TimeSpan类型指的是时间通道意义上的小时,而不是一天中的小时意义上的小时(尽管,是的,它也用于显示一天中的时间),因此需要小写的h s。大写表示24小时制,当您没有AM和PM的概念时,这无关紧要,而TimeSpan s没有。
  2. 您需要转义冒号以使其作为文本在解析中持续存在。

如果是这样,你可以这样做:

TimeSpan newEventStartTime = TimeSpan.ParseExact(Start_Time, @"hh':mm", CultureInfo.InvariantCulture);

如果你需要帮助,你可以查看自定义TimeSpan格式字符串MSDN页面,但我绝对同意这不是世界上最好的文档或最容易克服的错误。


这很可能与您无关,但我将其包含在良好的实践中。只有当您真的想要保留那个精确的格式字符串时才会这样做。如果您愿意稍微宽松一点,您可以使用"c"格式指示符来代替。这允许从传入字符串中保留更多细节。这些选项之间的选择实际上取决于你和你希望使用它的环境。但是,由于您甚至首先考虑使用ParseExact而不是Parse,我怀疑我上面给出的@"hh':mm"示例是您正在寻找的。

试试这个。它工作得很好。如果有任何疑问,请告诉我。

TimeSpan newEventStartTime = TimeSpan.ParseExact("12:44",@"hh':mm",CultureInfo.InvariantCulture);

参见dotnetfiddle link https://dotnetfiddle.net/In71Rh