巧妙解決「字串不被辨識為有效日期時間」錯誤:日期時間格式化
將字串轉換為 DateTime 物件時,指定正確的格式至關重要,否則容易出現「字串不被識別為有效日期時間」錯誤。此錯誤通常是因為字串格式與預期格式不符導致的。
例如:
<code class="language-csharp">this.Text="22/11/2009"; DateTime date = DateTime.Parse(this.Text);</code>
這段程式碼嘗試使用預設格式將字串轉換為 DateTime 對象,但字串遵循的是「dd/MM/yyyy」格式。為了解決這個問題,請使用 DateTime.ParseExact() 方法:
<code class="language-csharp">DateTime date = DateTime.ParseExact(this.Text, "dd/MM/yyyy", null);</code>
透過在第二個參數中指定格式,ParseExact() 可確保正確解析字串。
IFormatProvider 參數允許使用自訂格式提供程序,從而覆蓋預設的區域性設定。但是,在本例中,由於在字串轉換中已明確指定了預期格式,因此無需自訂格式提供者。
兩種方法都能解決問題,但 ParseExact() 通常更安全、更清晰。它明確聲明了預期格式,如果存在任何不一致,則更容易調試。
在效能方面,兩種方法都差不多。在某些情況下,Parse() 可能略快一些,但這通常可以忽略不計。
以上是如何求解'字符串未被識別為有效的日期時間”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!