我正在嘗試使用小時部分顯示日期時間字段,但沒有爲單位數小時引導零,如下所示:return string.Format("{0:h}", MyDateTimefield)
我得到一個「輸入字符串格式不正確」的錯誤。爲什麼?「輸入字符串的格式不正確」嘗試使用'h'顯示小時部分時發生錯誤
return string.Format("{0:hh}", MyDateTimefield)
工程。尋找正確的格式,而不是解決方法。
我正在嘗試使用小時部分顯示日期時間字段,但沒有爲單位數小時引導零,如下所示:return string.Format("{0:h}", MyDateTimefield)
我得到一個「輸入字符串格式不正確」的錯誤。爲什麼?「輸入字符串的格式不正確」嘗試使用'h'顯示小時部分時發生錯誤
return string.Format("{0:hh}", MyDateTimefield)
工程。尋找正確的格式,而不是解決方法。
如果「H」格式說明符不與其它自定義格式說明使用的,它被解釋爲一個標準的日期和時間的格式說明符和拋出一個出現FormatException。有關使用單個格式說明符的更多信息,請參閱本主題後面的Using Single Custom Format Specifiers。
下面這個鏈接讓你到:
使用任何自定義日期和時間格式說明符作爲格式字符串的唯一符[...],包括之前或符後空間,或者在單個自定義日期和時間說明符之前包含百分比(「%」)格式說明符。
+1好的發現,不知道單個字符的問題。 – pstrjds
我使用了兩種不同格式的字符串cheatsheets,他們沒有提到單個格式說明符。謝謝! –
從使用h
this link是小時格式正確,沒有前導0很有意思..以下所有似乎工作:
return string.Format("{0: h}", MyDateTimefield)
return string.Format("{0:h }", MyDateTimefield)
return string.Format("{0:h:m}", MyDateTimefield)
但只要你把return string.Format("{0:h}", MyDateTimefield)
它拋出一個異常。
至於爲什麼,我不確定。如果你沒有空間,前兩行應該可以工作。
它不起作用的原因很明顯,單字符格式字符串在.NET中是Special,並且僅被解釋爲「標準格式說明符」。 – millimoose
只要閱讀你的答案。很好的發現。我正在閱讀相同的msdn頁面,但我似乎完全跳過這一節:) – Lester
類型爲「DateTime」的MyDateTimefield?我問,因爲如果是這樣,你可能會返回'MyDateTimefield.ToString(「h」);' – pstrjds
@ pstrjds引發相同的錯誤。 –
我知道你不想要一個解決方法,但MyDateTimefield.Hour.ToString()將工作。 –