C#中的日期时间格式

8

我经历了C#的一种奇怪行为,它是这样的...

var date = DateTime.Now.ToString("MM/dd/yyyy");

I expecting out to be

04/24/2009

但事实上它返回的是
04-24-2009

我的操作系统语言设置是英国英语,我正在使用 .Net 3.5 和 WPF。

请问有什么解决方案吗... ???


你是否已经逐步执行了代码并在DateTime.Now.ToString()上完成了“QuickWatch”? - Tacoman667
如果您使用的是“en-GB”,则应使用“dd/MM/yyyy”日期格式。对于“MM/dd/yyyy”的美国日期格式,您应该使用“en-US”。 - JeeBee
3个回答

18
根据 MSDN 自定义日期和时间格式字符串文档,/ 是一个占位符:

代表当前 DateTimeFormatInfo.DateSeparator 属性中定义的日期分隔符。该分隔符用于区分年、月和日。

如果要使用明确的斜线,请使用 "MM'/'dd'/'yyyy"。
DateTime.Now.ToString("MM'/'dd'/'yyyy")

3

它使用区域设置中设置的分隔符,因为“/”是替代分隔符的字符。

您可以使用不同的分隔符创建自己的DateTimeFormat实例。


2
试着在日期本身上调用 ToString 并传递 CultureInfo.InvariantCulture 对象:
string date = yourDate.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture));

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