2012-10-15 104 views
2

我有以下的在我的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

+0

你爲什麼逃避冒號? –

+2

@RoyDictus:冒號不是特殊格式的字符,所以需要轉義。第一個結腸不應該逃脫。 – Chris

回答

9

兩個問題。首先你不應該逃避第一個:。這是分隔符所必需的,不應該被轉義。

第二個是HH應該是hh

這將運行沒有錯誤:

string.Format(@"{0:hh\:mm}", new TimeSpan(0)) 
+0

非常感謝,這真的是問題所在。另外,我的日期時間格式爲「{0:dd/MM/yyyy HH:mm}」,這是否也需要「處理」? –

+0

閱讀oded鏈接的頁面(http://msdn.microsoft.com/zh-cn/library/ee372287.aspx)應該告訴你所有你需要知道的內容。在這種情況下,該格式字符串是有效的,因爲':'實際上是一個特殊的格式字符,它只是一個冒號。爲什麼這種差異存在我不能告訴你。 :) – Chris

+0

@Chris - 我連接到'TimeSpan'格式的字符串,這將與'DateTime'格式的字符串不同...(其中之一,'HH'對'DateTime'有效)。 – Oded

3

您的格式字符串使用HH - 它應該是hh

請參閱Custom TimeSpan Format Strings在MSDN上。

此外,您的第一個:不應該被轉義 - 它是佔​​位符0的一部分,而不是文字。

一起:

string.Format(@"{0:hh\:mm}", new TimeSpan(0)) 
0

使用應該使用HH HH的。

相關問題