C#的DateTime的ToString( “MM-DD-YYYY”)返回有趣的日期值

问题描述:

我有一个ASP.Net页的代码隐藏文件,下面的代码C#的DateTime的ToString( “MM-DD-YYYY”)返回有趣的日期值

txtStartDate.Text = DateTime.Today.ToString("MM-dd-yyyy"); 

哪个我希望返回“09-11 -2009" 。但是,当我在开发服务器上运行页面时,我在文本框中看到“09-00-2009”。我看不出任何理由,所以我显然错过了一些东西。任何人都有线索?

+0

同样的事情,工作正常,我。也许你的系统时钟搞砸了? – ryber 2009-09-11 14:56:36

+0

使用ToString(“MM-ddd-yyyy”)检查它;和ToString(“MM-dddd-yyyy”);并看看你得到了什么...如果你看到没有改变,那么年龄格式字符串没有得到返回的页面......如果你看到09年一月-2009和09年一月一号,那么你的电脑时钟是off – 2009-09-11 15:03:26

format string应该按预期工作。我会检查你的文本框,以确保你没有某种掩码(AJAX MaskedEditExtender?)。如果你这样做了,并且可能掩码不正确,它可能会覆盖你在文本框中的内容。

+0

它上面有AJAX CalendarExtender,但两者的格式字符串是相同的。 – 2009-09-11 15:14:28

+0

就是这样 - 我在复制扩展器的格式字符串时发生错误。 – 2009-09-11 15:18:02

我想不出为什么它会显示00,但作为一个随机建议你可以尝试:

... = DateTime.Today.ToString("MM-dd-yyyy", CultureInfo.InvariantCulture); 

你可以检查日期时间,Now.ToString()?

+0

是的,我检查了 - 同样的结果。 – 2009-09-11 15:15:41

尝试这样:

DateTime.Today.ToString("MM-dd-yyyy", CultureInfo.CreateSpecificCulture("en-US")) 
+0

感谢您的提示。 – 2017-03-05 22:15:29

使用。现在获取本地时间

txtStartDate.Text = DateTime.Now.ToString("MM-dd-yyyy");