2009-02-01 48 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"));