格式date在C#
如何将date格式设置为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");
另外,您可能需要考虑使用其中一种预定义的date/时间格式,例如:
DateTime.Now.ToString("g"); // returns "02/01/2009 9:07 PM" for en-US // or "01.02.2009 21:07" for de-CH
这些确保格式将是正确的,独立于当前的区域设置。
检查以下MSDN页面以获取更多信息
- DateTime.ToString()方法
- 标准date和时间格式string
- 自定义date和时间格式string
一些额外的相关信息:
如果您想在特定的区域/文化中显示date,那么需要使用IFormatProvider
的ToString()
方法的重载:
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"
或者,您可以在格式化date之前设置当前线程的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)
在MSDN上查找“格式string”以查看所有格式选项。
对date分量使用yy
, yyyy
, M
, MM
, MMM
, MMMM
, d
, dd
, ddd
, dddd
使用h
, hh
, H
, HH
, m
, mm
, s
, ss
来表示时间分量
在你也可以写
DateTime aDate = new DateTime(); string s = aDate.ToShortDateString();
一个简短的表示法
要么
DateTime aDate = new DateTime(); string s = aDate.ToLongDateString();
像“2009年2月1日星期天”这样长的表示法。
或者看一下MSDN的可能性.ToString(“???”);
尝试这个 :
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.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);
所有你需要做的就是改变文化名称,例如:“en-US”=美国“fr-FR”=讲法语的法国“fr-CA”=讲法语的加拿大等等。
我认为这很简单,因为您可以毫无困惑地转换成任何格式
DateTime.ParseExact(txt.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture).ToString("yyyy/MM/dd"));