簡體   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