Custom Date and Time Format Strings on MSDN自定義時間格式化0:做什麼?
上面的鏈接似乎很多使用{0:MM/dd/yy H:mm:ss zzz}。
我理解所有的字母和格式選項,但我似乎無法找到前面的「0:」是用於什麼?
Custom Date and Time Format Strings on MSDN自定義時間格式化0:做什麼?
上面的鏈接似乎很多使用{0:MM/dd/yy H:mm:ss zzz}。
我理解所有的字母和格式選項,但我似乎無法找到前面的「0:」是用於什麼?
{0}
是一個複合格式化佔位符,表示格式值列表中的第一項。有關詳細信息,請參閱this MSDN article,特別是底部附近稱爲「複合格式」的部分或特別關於Composite Formatting的較大文章。但是,總結一下:
在.NET中,可以使用兩種字符串格式:ToString
格式和複合格式。它們都使用相同的自定義格式字符串語法。
如果您有一個對象,例如DateTime
變量,並且您在該對象上調用DateTime.ToString()
,則可以傳遞一個格式化字符串,它將應用於該對象,並根據您的模式進行格式化。但是,如果您有多個對象並且您想要構建包含其值的複雜字符串,則可以調用String.Format
。該函數需要一個包含佔位符的「格式字符串」,其中可變位的位置看起來像{0:g}
或{5:MM/dd/yy}
或其他。 String.Format
的其餘參數是變量列表。 {0}
佔位符是第一個變量,{5}
是第六個,等等。
我瞭解複合格式。但只是爲了確保我明白你在說什麼。這只是一種偏好?因爲當我使用日期作爲字符串時,我通常首先聲明一個字符串,然後用格式化的日期填充字符串。然後我在我的String.Format中將我的字符串調用到佔位符中。你說這只是一種避免提前填充字符串變量的方法?並將格式選項放在我的佔位符中? – user2140261 2013-03-12 20:14:33
是的。如果將'DateTime'傳遞給'String.Format()',它將使用與DateTime.ToString()'相同的格式化邏輯,所以不需要單獨調用它。你可以做例如'String.Format(「今天是:{0:MM/dd/yy}」,DateTime.Today)'' – 2013-03-12 21:44:51
這些是變量的佔位符。請參閱http://msdn.microsoft.com/en-us/library/26etazsy(v=vs.95).aspx並向下滾動到「複合格式」 – 2013-03-12 19:56:09