2

我有一个简单的问题:我想将日期写在 asp:label 中,格式如下:MMM dd, yyyy 我试过这个:

lblDate.Text = System.DateTime.Today.ToString("MMM dd, yyyy");

结果是:“okt. 12, 2012”

  1. 我想从中删除点。
  2. 月份名称应以大写字母开头。

正确的格式:“Okt 12, 2012”

我怎样才能做到这一点?

4

3 回答 3

6

您可以为此使用AbbreviatedMonthNames属性:

CultureInfo ci = CultureInfo.CreateSpecificCulture("en-US");
DateTimeFormatInfo dtfi = ci.DateTimeFormat;
dtfi.AbbreviatedMonthNames = new string[] 
{ 
  "Jan", "Feb", "Mar", 
  "Apr", "May", "Jun", 
  "Jul", "Aug", "Sep", 
  "Oct", "Nov", "Dec", "" 
}; 

lblDate.Text = DateTime.Now.ToString("MMM dd, yyyy", dtfi);

然后输出将是Okt 12, 2012

于 2012-10-12T19:42:07.410 回答
2

DateTime.ToString()根据当前文化中规定的规则格式化日期。您可以使用@naspinski 显示的技术手动更改它,但您的应用程序的其他用户可能会得到不同的结果,具体取决于他们特定于文化的设置。例如,某些文化使用点作为日期分隔符,如“12.10.2012”。您可以在 Windows 控制面板中更改您的区域设置,以按照您喜欢的方式进行格式化。

于 2012-10-12T19:40:52.003 回答
1

手动执行此操作的方法:

string dt System.DateTime.Today.ToString("MMM dd, yyyy")Replace(".","");
if(dt.length>0) dt = dt.SubString(0,1).ToUpper() + dt.SubString(1, dt.Length - 1);
lblDate.Text = dt;
于 2012-10-12T19:35:44.580 回答