2012-10-12 51 views
2

我有一个简单的问题:我想要写一个asp的日期:按以下格式标签: MMM DD,YYYY 我尝试这样做:DateTime格式

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

结果是: “okt。12,2012”

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

正确的格式为: “十月12,2012”

我该怎么办呢?

+1

''与string.replace( “” “”)? – Oded

+0

你在什么文化下运行? – Oded

回答

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

+1

这比我们接受的答案要好得多。 –

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; 
2

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