我该如何将日期格式化为dd/mm/yyyy
或mm/dd/yy
?
例如在VB中使用format("dd/mm/yy",now)
在C#中我该如何做到这一点?
我该如何将日期格式化为dd/mm/yyyy
或mm/dd/yy
?
例如在VB中使用format("dd/mm/yy",now)
在C#中我该如何做到这一点?
差不多相同,只需使用 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"
string.Format("{0:dd/MM/yyyy}", DateTime.Now)
yy
、yyyy
、M
、MM
、MMM
、MMMM
、d
、dd
、ddd
和dddd
。h
、hh
、H
、HH
、m
、mm
、s
和ss
。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
DateTime aDate = new DateTime();
string s = aDate.ToShortDateString();
对于简短的符号表示
或者
DateTime aDate = new DateTime();
string s = aDate.ToLongDateString();
对于像“2009年2月1日星期日”这样的长日期格式。
或者查看MSDN,了解.ToString("???")的可能性。
DateTime.Now.ToString()
DateTime.Now.ToString(CultureInfo.CurrentCulture)
使用用户喜欢的格式。
我遇到了同样的问题。我需要在类的顶部添加一个引用,并更改当前执行线程的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);
DateTime.ParseExact(txt.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture).ToString("yyyy/MM/dd"));