2

我有这个:

var dateString = string.Format("{0:dd/MM/yyyy}", date);

但是 dateString 是 13.05.2011 而不是 13/05/2011。你能帮助我吗?

4

7 回答 7

5
// date separator in german culture is "." (so "/" changes to ".")
String.Format("{0:d/M/yyyy HH:mm:ss}", dt); // "9/3/2012 16:05:07" - english (en-US)
String.Format("{0:d/M/yyyy HH:mm:ss}", dt); // "9.3.2012 16:05:07" - german (de-DE)

所以你必须把文化从德语改成英语!

你可以写 :

date.ToString(new CultureInfo("en-EN"));
于 2012-12-05T14:40:14.613 回答
5

您可以使用DateTime.ToStringwithCultureInfo.InvariantCulture代替:

var dateString = date.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);

/替换.为的原因/是自定义格式说明符

“/”自定义格式说明符表示日期分隔符,用于区分年、月和日。DateTimeFormatInfo.DateSeparator从当前或指定区域性的属性中检索适当的本地化日期分隔符 。

因此,要么使用InvariantCulturewhich/用作日期分隔符,要么 - 更合适 - 通过将其嵌入到以下格式说明符中来转义它'

var dateString = date.ToString("dd'/'MM'/'yyyy");

为什么这样更合适?因为您仍然可以应用本地文化,fe 如果您想输出月份名称,但/无论如何您都强制作为日期分隔符。

于 2012-12-05T14:44:58.923 回答
2

试试这个:

  var dateString = string.Format("{0:dd}/{0:MM}/{0:yyyy}", date);

还可以查看 Steve X 的字符串格式网站:http: //blog.stevex.net/string-formatting-in-csharp/

于 2012-12-05T14:39:13.733 回答
2

如果您想强制使用日期分隔符而不考虑文化,您可以将其转义,如下所示:

var dateString = string.Format(@"{0:dd\/MM\/yyyy}", date);

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

于 2012-12-05T14:41:41.803 回答
2

只需尝试

var dateString = date.ToString("dd/MM/yyyy", new System.Globalization.CultureInfo("en-GB"));
于 2012-12-05T14:41:55.253 回答
1

这似乎是一个日期分隔符问题。用这个;

String.Format("{0:d/M/yyyy}", date);

检查String Format DateTime并查看DateTimeFormatInfo.DateSeperator财产。

于 2012-12-05T14:40:40.227 回答
1

试试这个:

var dateString = string.Format("{0:dd/MM/yyyy}", DateTime.Today, new System.Globalization.CultureInfo("en-GB"));
于 2012-12-05T14:43:05.603 回答