2015-09-30 26 views
1

以下代碼:使用標準或定製的日期格式

DateTime test = new DateTime(); 
Console.WriteLine(test.ToString("d")); 
Console.WriteLine(test.ToString("d_")); 
Console.WriteLine(test.ToString("dd")); 

產生下列結果:

0001-01-01 
1_ 
01 

的第一個結果是完整的日期,因爲d被視爲標準日期格式。另一方面,d_被視爲自定義日期格式,在這種情況下,d被視爲短日期字符串。有沒有一種方法可以在沒有下劃線的情況下生成短日期?

+0

應該使用什麼格式化字符串如果是日期,說,2015-09-01我想得到結果'1'? – Spook

+0

你可以使用'test.Day' :) –

+0

@TimSchmelter,這是一個解決方法,而不是解決方案。 – Spook

回答

5

任何這些:

Console.WriteLine(test.ToString("%d")); 
Console.WriteLine(test.ToString(" d")); 
Console.WriteLine(test.ToString("d ")); 

https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx#UsingSingleSpecifiers

使用任何自定義日期和時間格式說明符作爲格式字符串的唯一說明符(即使用「 d,f,f,g,h,H,K,m,M,s,t,y,z, ,「:」或「/」自定義格式說明符),在說明符之前或之後包含空格,或在單個自定義日期和時間說明符之前包含百分比(「%」)格式說明符。

0

恐怕只有解決此問題的方法。你想成爲date.ToString("d")解釋爲顯示當天的custom date time format string。但是根據定義,單個格式說明符總是指定一個standard date and time format string

你可以直接使用DateTime.Day

Console.WriteLine(test.Day); 

或這一招,它使用d有一個空的空間+ Trim

Console.WriteLine(test.ToString(" d ").Trim()); 

MSDN

一個標準的日期和時間格式字符串使用一個格式說明符 來定義日期和時間值的文本表示。 包含多個字符, 包括白色空間的任何日期 和時間格式字符串,被解釋爲自定義日期和時間格式 串

2

根據msdn你可以這樣做:

Console.WriteLine(test.ToString("%d"));