我有这个:
var dateString = string.Format("{0:dd/MM/yyyy}", date);
但dateString是13.05.2011而不是13/05/2011。你能救我吗?
答案 0 :(得分: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"));
答案 1 :(得分:3)
您可以使用DateTime.ToString
代替CultureInfo.InvariantCulture
:
var dateString = date.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
将/
替换为.
的原因是/
is a custom format specifier
“/”自定义格式说明符表示日期分隔符 用于区分年,月和日。适当的 从中检索本地化日期分隔符
DateTimeFormatInfo.DateSeparator
属性 当前或特定的文化。
因此,使用InvariantCulture
作为日期分隔符使用/
或者更合适 - 通过将其嵌入'
中来转义此格式说明符:
var dateString = date.ToString("dd'/'MM'/'yyyy");
为什么这更合适?因为你仍然可以应用当地文化,f.e。如果要输出月份名称,但无论如何都要强制/
作为日期分隔符。
答案 2 :(得分:2)
试试这个:
var dateString = string.Format("{0:dd}/{0:MM}/{0:yyyy}", date);
另请查看Steve X的网站格式: http://blog.stevex.net/string-formatting-in-csharp/
答案 3 :(得分:2)
如果您想强制使用日期分隔符而不管文化,您可以将其转义,例如:
var dateString = string.Format(@"{0:dd\/MM\/yyyy}", date);
答案 4 :(得分:2)
只需尝试
var dateString = date.ToString("dd/MM/yyyy", new System.Globalization.CultureInfo("en-GB"));
答案 5 :(得分:1)
这似乎是一个日期分隔符问题。使用它;
String.Format("{0:d/M/yyyy}", date);
检查String Format DateTime
并查看DateTimeFormatInfo.DateSeperator
属性。
答案 6 :(得分:1)
试试这个:
var dateString = string.Format("{0:dd/MM/yyyy}", DateTime.Today, new System.Globalization.CultureInfo("en-GB"));