2009-02-01 75 views
16

如何將日期格式設置爲dd/mm/yyyymm/dd/yyc中的格式日期#

像VB format("dd/mm/yy",now)

我如何在C#這樣做嗎?

回答

44

這幾乎是相同的,只需使用DateTime.ToString()方法,如:

DateTime.Now.ToString("dd/MM/yy"); 

或者:

DateTime dt = GetDate(); // GetDate() returns some date 
dt.ToString("dd/MM/yy"); 

此外,你可能要考慮使用的預定義的日期/時間格式之一,例如:

DateTime.Now.ToString("g"); 
// returns "02/01/2009 9:07 PM" for en-US 
// or "01.02.2009 21:07" for de-CH 

這些確保格式將是正確的,獨立於當前區域設置。

檢查以下MSDN網頁以獲取更多信息


一些其他相關信息:

如果要顯示一個特定的區域/培養物的日期,再有就是ToString()方法的過載,其採用IFormatProvider

DateTime dt = GetDate(); 
dt.ToString("g", new CultureInfo("en-US")); // returns "5/26/2009 10:39 PM" 
dt.ToString("g", new CultureInfo("de-CH")); // returns "26.05.2009 22:39" 

或可替代地,可以設置之前的當前線程的CultureInfo以格式化日期:

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); 
dt.ToString("g"); // returns "5/26/2009 10:39 PM" 

Thread.CurrentThread.CurrentCulture = new CultureInfo("de-CH"); 
dt.ToString("g"); // returns "26.05.2009 22:39" 
+2

應該是大寫字母爲MM本月毫米表示分鐘...... – 2009-02-01 20:03:06

+2

我鼓勵你要遵循Martin的建議,並遵循文化意識的預定義代碼。現在你可能不需要它,但將來它可以使事情變得更容易。 – 2009-02-01 21:48:31

+0

+1爲預定義格式 – 2012-08-29 14:53:48

8
string.Format("{0:dd/MM/yyyy}", DateTime.Now) 

查找「格式字符串」 MSDN上看到所有的格式設置選項。

使用yyyyyyMMMMMMMMMMdddddddddd的日期組件

使用hhhHHHmmmsss爲時間段組件

2

試試這個:

String.Format("{0:MM/dd/yyyy}", DateTime.Now); // 01/31/2009 
String.Format("{0:dd/MM/yyyy}", DateTime.Now); // 31/01/2009 
String.Format("{dd/MM/yyyy}", DateTime.Now); // 31/01/2009 
2

你也可以寫

DateTime aDate = new DateTime(); 
string s = aDate.ToShortDateString(); 

短暫符號

DateTime aDate = new DateTime(); 
string s = aDate.ToLongDateString(); 

長期的符號,如 「週日,Febuary 1,2009年」。或者看一下MSDN以瞭解.ToString(「???」)的可能性。

2

更重要的是,只使用

DateTime.Now.ToString() 

DateTime.Now.ToString(CultureInfo.CurrentCulture) 

使用用戶首選的格式。

0

我遇到了同樣的問題。我需要做的是在類的頂部添加一個引用,並更改當前正在執行的線程的CultureInfo。

using System.Threading; 

string cultureName = "fr-CA"; 
Thread.CurrentThread.CurrentCulture = new CultureInfo(cultureName); 

DateTime theDate = new DateTime(2015, 11, 06); 
theDate.ToString("g"); 
Console.WriteLine(theDate); 

所有你需要做的是改變文化名稱,例如: 「EN-US」=美國 「FR-FR」=法語法國 「FR-CA」=法語說加拿大 等等

0

我覺得這很簡單,你可以轉換,並從任何格式,沒有任何混亂

DateTime.ParseExact(txt.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture).ToString("yyyy/MM/dd"));