我有以下内容:
PMRCutoffDate.Value = ReportCalc.Cutoff_Date.ToString("MM/dd/yyyy");
PMRDate.Value = DateTime.Now.ToString("MM/dd/yyyy");
我希望日期显示为:03/05/2010,而不是2010年5月5日或2010年5月3日或3月5日
但是,我的程序STILL错误地显示日期(2010年3月10日)。
关于什么是错的任何想法?
答案 0 :(得分:12)
在VS 2008中,我有以下代码和您正在寻找的输出。你能发布更多信息吗? 代码:
Console.WriteLine(DateTime.Now.ToString("MM/dd/yyyy"));
输出:
03/10/2010
答案 1 :(得分:3)
根据这个article,您可以使用String.format或DateTime.toString填充日期,如下所示:
String.Format("{0:MM/dd/yyyy}", dt);
答案 2 :(得分:3)
如果日期格式已更改,请检入“控制面板”的“区域和语言选项”小程序。通过使用DateTime.ToString()重载中的CultureInfo.InvariantCulture.DateTimeFormat属性,您应该能够将自己与这些覆盖或不寻常的文化属性隔离开来。
答案 3 :(得分:2)
Textbox1.Text = DateTime.Today.ToString("MM/dd/yyyy",CultureInfo.InvariantCulture);
OUTPUT:
09/18/2015
答案 4 :(得分:1)
上述回复应该可以帮助您,但如果没有,您仍然遇到问题,您可以为DateTime创建以下扩展方法,并强制它为您需要的格式,无论文化设置如何:
public static class StringExtension
{
static public string ToStringFormatted(this DateTime dt)
{
return string.Format("{0:00}/{1:00}/{2:0000}", dt.Month, dt.Day, dt.Year);
}
// if the culture info change does fix your issue do:
static public string ToStringFormatted2(this DateTime dt)
{
return dt.ToString("MM/dd/yyyy");
}
}
// useage:
string date = DateTime.Now.ToStringFormatted();
// output: 03/10/2010
我更喜欢用于格式化日期之类的扩展方法,因为有人总是想要在某些时候更改格式,我只需要更改扩展名,而我的整个应用程序现在都反映了新格式。