2011-04-12 49 views
9

我有以下代码日期分隔符的问题

DateTime.Now.ToString("MM/dd/yyyy") 

它总是给我这样的输出:“2011年4月13日”,而不是“2011年4月13日”。我可以知道为什么我得到这个奇怪的问题吗?

回答

19

你几乎可以肯定地在一个文化中,这是默认的日期分隔符。如果你想/你可以引用它在格式字符串:

string x = DateTime.Now.ToString("MM'/'dd'/'yyyy") 
+0

哇!它做到了绝招!乔恩,但在我的情况下,我存储的格式为“MM/dd/yyyy”,其他可以是“dd/MM/yyyy”,其他可以是“dd-MM-yyyy”。我将从数据库中获取该格式的用户,并使用此代码DateTime.Now.ToString(UserFormatStoredInDB)。我该如何处理这种情况? – 2011-04-12 20:19:16

+0

@Rocky:只需引用您想要使用的任何分隔符......将带引号的字符串放入数据库中。引用的版本将适用于任何文化。或者你可以总是指定用于格式化的不变文化,作为替代。 – 2011-04-12 20:20:16

+0

你能否让我知道这个代码“或者你总是可以指定不变的文化用于格式化,”? – 2011-04-12 20:23:11

2

试试这个

DateTime.Now.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture) 
1

使用下面的代码:

DateTime.Now.ToString("MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture) 

这确保了基础日期并且当数据由不同文化的用户读取或写入时,时间值不会改变。