繁体   English   中英

输入字符串的格式不正确。 在时间跨度

[英]Input string was not in a correct format. in timespan

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

当这行代码执行时,它会产生错误输入字符串的格式不正确。 变量Start_Time数据类型是c#中的字符串,它在java脚本中的数据类型是时间。

不久前我自己做了类似的事情。 这里有一些事情需要在您的格式字符串中进行修改。

  1. 由于TimeSpan类型是指时间段感觉中的小时而不是时间感(即使是,它也用于显示一天中的时间),您需要小写h s。 大写意味着24小时制,当你没有AM和PM的概念时,这是无关紧要的,而TimeSpan则没有。
  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链接https://dotnetfiddle.net/In71Rh

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM