在.NET應用程序,我想格式化一個固定長度格式的日期和時間,但當天如下沒有前導零:如何消除.Net DateTime的'd'標準和自定義格式字符串之間的歧義?
String.Format("{0:d MMM HH:mm:ss}", DateTime.Now);
"25 Jun 04:21:11"
這適用於該月的天大於十,但(如documented)不插入前導空格。現在,下面應提供所要求的格式:
String.Format("{0,2:d}", DateTime.Now);
"25/06/2016"
但是,正如所看到的,而不是格式化使用標準Short date格式字符串的日期。我可以使用:
String.Format("{0,2:''d} {0:MMM HH:mm:ss}", DateTime.Now.AddDays(-20));
" 5 Jun 04:21:11"
以獲得所需的效果,但這似乎並不令人滿意。 有沒有更少的解決方法讓格式化程序使用單獨的d
的自定義格式字符串解釋而不是短日期標準格式?
在日期之前插入一個空格是一件不尋常的事情...您爲什麼期望日期格式支持? –
由於數字格式通常使用'#'字符作爲格式中空格的空格。 – Pekka