TimeSpan newEventStartTime = TimeSpan.ParseExact(Start_Time, "HH:mm", CultureInfo.InvariantCulture);
当这行代码执行时,它会产生错误输入字符串的格式不正确。 并且变量Start_Time数据类型是c#中的字符串,它在java脚本中的数据类型是时间。
答案 0 :(得分:2)
我不久前在做这样的事情时遇到了麻烦。这里有一些事情需要在你的格式字符串中进行修改。
TimeSpan
类型指的是时间段感觉中的小时而不是时间感(即使是,它也用于显示一天中的时间),您需要小写h
秒。大写意味着24小时制,当你没有{AM}和PM的概念时,这是不相关的,TimeSpan
不是。鉴于此,你可以这样做:
TimeSpan newEventStartTime = TimeSpan.ParseExact(Start_Time, @"hh\:mm", CultureInfo.InvariantCulture);
如果您需要帮助,可以查看Custom TimeSpan
Format Strings MSDN页面,但我绝对同意,这不是世界上最好记录或最容易克服的错误。
这很可能与你无关,但我只是在良好的实践中包括它。只有当你真的想保留那个确切的格式字符串时才会这样。如果您可以稍微宽松一点,可以使用"c"
格式指示符。这允许从传入的字符串中保留更多细节。这些选项之间的选择实际上取决于您以及您希望使用它的情况。但同样,因为你甚至认为首先使用ParseExact
而不是Parse
,我怀疑我上面用@"hh\:mm"
给出的例子是你正在寻找的。
答案 1 :(得分:1)
试试这个。它工作正常。如果有任何其他疑惑,请告诉我。
TimeSpan newEventStartTime = TimeSpan.ParseExact("12:44",@"hh\:mm",CultureInfo.InvariantCulture);
请参阅dotnetfiddle链接https://dotnetfiddle.net/In71Rh