我有一个简单的问题:我想将日期写在 asp:label 中,格式如下:MMM dd, yyyy 我试过这个:
lblDate.Text = System.DateTime.Today.ToString("MMM dd, yyyy");
结果是:“okt. 12, 2012”
- 我想从中删除点。
- 月份名称应以大写字母开头。
正确的格式:“Okt 12, 2012”
我怎样才能做到这一点?
您可以为此使用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
DateTime.ToString()
根据当前文化中规定的规则格式化日期。您可以使用@naspinski 显示的技术手动更改它,但您的应用程序的其他用户可能会得到不同的结果,具体取决于他们特定于文化的设置。例如,某些文化使用点作为日期分隔符,如“12.10.2012”。您可以在 Windows 控制面板中更改您的区域设置,以按照您喜欢的方式进行格式化。
手动执行此操作的方法:
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;