我有以下的在我的C#項目MVC2行代碼:爲什麼TimeSpan字符串格式化解析爲異常?
string.Format(@"{0\:HH\:mm}", new TimeSpan(0))
此行是導致以下異常:
System.FormatException: Input string was not in a correct format.
任何人能告訴我爲什麼嗎?我正在使用C#,asp.net,mvc2和.net框架4
我有以下的在我的C#項目MVC2行代碼:爲什麼TimeSpan字符串格式化解析爲異常?
string.Format(@"{0\:HH\:mm}", new TimeSpan(0))
此行是導致以下異常:
System.FormatException: Input string was not in a correct format.
任何人能告訴我爲什麼嗎?我正在使用C#,asp.net,mvc2和.net框架4
兩個問題。首先你不應該逃避第一個:
。這是分隔符所必需的,不應該被轉義。
第二個是HH
應該是hh
。
這將運行沒有錯誤:
string.Format(@"{0:hh\:mm}", new TimeSpan(0))
非常感謝,這真的是問題所在。另外,我的日期時間格式爲「{0:dd/MM/yyyy HH:mm}」,這是否也需要「處理」? –
閱讀oded鏈接的頁面(http://msdn.microsoft.com/zh-cn/library/ee372287.aspx)應該告訴你所有你需要知道的內容。在這種情況下,該格式字符串是有效的,因爲':'實際上是一個特殊的格式字符,它只是一個冒號。爲什麼這種差異存在我不能告訴你。 :) – Chris
@Chris - 我連接到'TimeSpan'格式的字符串,這將與'DateTime'格式的字符串不同...(其中之一,'HH'對'DateTime'有效)。 – Oded
您的格式字符串使用HH
- 它應該是hh
。
請參閱Custom TimeSpan Format Strings在MSDN上。
此外,您的第一個:
不應該被轉義 - 它是佔位符0
的一部分,而不是文字。
一起:
string.Format(@"{0:hh\:mm}", new TimeSpan(0))
使用應該使用HH HH的。
檢查規格在這裏:http://msdn.microsoft.com/en-us/library/ee372286.aspx
您應該使用HH代替HH,例如:
var str = string.Format(@"{0:hh\:mm}", new TimeSpan(2,2,0));
你爲什麼逃避冒號? –
@RoyDictus:冒號不是特殊格式的字符,所以需要轉義。第一個結腸不應該逃脫。 – Chris