我想在WPF文本塊中生成只有一天的數字,沒有前導零和沒有額外的空間填充(這將拋出佈局)。第一個產生一個空格的日期編號,第二個產生整個日期。根據docs,'d'應該產生一天(1-31)。爲什麼這兩種日期格式有所不同?
string.Format("{0:d }", DateTime.Today);
string.Format("{0:d}", DateTime.Today);
更新:添加%確實是個竅門。適當的文檔here。
我想在WPF文本塊中生成只有一天的數字,沒有前導零和沒有額外的空間填充(這將拋出佈局)。第一個產生一個空格的日期編號,第二個產生整個日期。根據docs,'d'應該產生一天(1-31)。爲什麼這兩種日期格式有所不同?
string.Format("{0:d }", DateTime.Today);
string.Format("{0:d}", DateTime.Today);
更新:添加%確實是個竅門。適當的文檔here。
從MSDN文檔「自定義日期和時間格式字符串」:
任何字符串,它是不是一個標準的日期 和時間格式字符串被解釋 爲自定義日期和時間格式 字符串。
{0:d}被解釋爲標準數據和時間格式字符串。從「標準日期和時間格式字符串」中,「d」格式說明:
表示當前 ShortDatePattern屬性定義一個定製的日期和時間 格式字符串。
空格{0:d}與任何標準日期和時間格式字符串不匹配,並且被解釋爲自定義數據和時間格式字符串。從「自定義日期和時間格式字符串」中,「d」格式說明:
表示月份從1 數到31
當天{0:d}
格式使用模式在Standard Date and Time Format Strings document of MSDN中定義。 'd'表示短日期模式,'D'表示長日期模式,等等。
您想要的格式似乎是Custom Date and Time Format Modifiers,當沒有指定的格式匹配時(例如,'d'包含空格)或使用ToString()時,格式會起作用。
你可以使用下面的代碼來代替:
string.Format("{0}", DateTime.Today.ToString("d ", CultureInfo.InvariantCulture));
還包含一個冗餘空間。 – lesscode 2008-10-03 02:05:04
謝謝 - '%' 的伎倆。 http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx#UsingSingleSpecifiers中的相應文檔部分。 – lesscode 2008-10-03 01:58:21