日期格式为MM/dd/yyyy。

6

我有以下内容:

PMRCutoffDate.Value = ReportCalc.Cutoff_Date.ToString("MM/dd/yyyy");
PMRDate.Value = DateTime.Now.ToString("MM/dd/yyyy");

我希望日期显示为:03/05/2010,而不是3/5/2010或03/5/2010或3/05/2010。
然而,我的程序仍然显示错误的日期(3/10/2010)。
有任何想法是出了什么问题吗?

2
尝试添加CultureInfo: DateTime.Now.ToString("MM/dd/yyyy", new CultureInfo("en-US"));看看是否能解决问题。 - David
5个回答

14

我在VS 2008中有以下代码,它可以产生你要查找的输出结果。你能否提供更多信息?

Console.WriteLine(DateTime.Now.ToString("MM/dd/yyyy"));

输出:

03/10/2010

5
根据这篇文章,你可以使用String.format或DateTime.toString来对日期进行0填充处理:
String.Format("{0:MM/dd/yyyy}", dt);

3

检查控制面板中的区域和语言选项应用程序,以确定日期格式是否更改。您可以通过在DateTime.ToString()重载中使用CultureInfo.InvariantCulture.DateTimeFormat属性来使自己免受这些覆盖或不寻常的文化属性的影响。


2

Textbox1.Text = DateTime.Today.ToString("MM/dd/yyyy",CultureInfo.InvariantCulture);

输出: 09/18/2015


这个回答不符合指南要求。请添加更多关于你所做的事情以及为什么它可以解决问题的解释。 - AJF

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

我更喜欢使用扩展方法来格式化日期之类的东西,因为总会有人想要在某个时候更改格式,而我只需要更改扩展方法,整个应用程序现在都反映了新格式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接