2013-03-28 24 views
5

我試圖用字符串在C#中DateTime對象上進行格式化,以獲得該月的一天,沒有前導零。字符串格式爲獲得該月的一天沒有前導零

經過一番搜索,我發現some documentation for DateTime formats,這表明我應該能夠調用:

dateTime.ToString("d"); 

讓我以後的價值,但是當我試了一下,而不是接收像28一些,輸出是:3/28/2013

更多的搜索後,我發現文檔的Standard Date and Time String Formats

這兩組格式都使用"d"格式,但結果顯而易見的是標準字符串格式優先於自定義字符串格式。

是否有指定的格式需要一種方式?

對於代碼的一致性我寧願寫:

a = dateTime.ToString(...some format...); 
b = dateTime.ToString(...some format...); 

而非

a = dateTime.ToString(...some format...); 
b = dateTime.Day.ToString(); 

回答

10

單個字符被理解爲是一個Standard Date and Time Format String,在這種情況下,「短日期模式」 。

您需要前綴單個字符的自定義格式字符串%它被解釋爲一個自定義的:

dateTime.ToString("%d"); 

這個你鏈接到網頁上的描述,Using Single Custom Format Specifiers下(其描述%自定義格式說明符)。

+1

+1這就解釋了爲什麼如果你前後添加空格''你會得到預期的產出。 – Steve

0

可以使ToString方法,通過添加一個空的文本到格式使用的格式爲自定義格式字符串,而不是一個標準格式字符串:

dateTime.ToString("''d") 
+1

尼斯的解決方法 - 使用空內字符串常量。我仍然更喜歡這個記錄的'%'。 – Oded

+0

@Oded:注:本*爲*記載,只是不適合這個特定用途。我喜歡這種給'「d‘'或'’d」'文檔中還提出了... :) – Guffa

相關問題