DateTime:如何显示为DD.MM.YYYY?

时间:2010-09-27 13:08:25

标签: c# .net

我有DateTime变量,我想将其转换为字符串“DD.MM.YYYY” 请注意,值必须用“点”符号分隔。

当然我可以做手工字符串组合。但我想知道我是否可以使用DateTime.ToString() 做必要的转换。

4 个答案:

答案 0 :(得分:15)

是的,你可以:

string formatted = dt.ToString("dd'.'MM'.'yyyy");

现在在这种情况下,实际上并不需要引号,因为custom date/time format strings不会以任何特殊方式解释点。但是,我喜欢明确 - 如果改变'。'例如,对于':',当它被引用时,它将保留显式字符,但不引用它将是“特定于文化的时间分隔符”。对我来说,“是否”并不完全明显。将被解释为“文化特定的小数分隔符”,因此引用。当然,你可能会认为这是最重要的 - 这完全是你的决定。

可能也想要指定不变文化,只是为了消除任何其他疑点:

string formatted = dt.ToString("dd'.'MM'.'yyyy", CultureInfo.InvariantCulture);

(此时点周围的引号变得不那么相关,因为“。”无论如何都是不变文化中的小数分隔符。)

答案 1 :(得分:8)

是的,您可以像这样使用DateTime.ToString:

myDateVariable.ToString("dd.MM.yyyy");

请注意,您必须在此使用大写MM,因为mm的评估时间为分钟而非月份。

答案 2 :(得分:3)

以下是您的替代选择:

DateTime.Now.ToString("d", new CultureInfo("de-DE"))

德语使用.作为日期分隔符。

答案 3 :(得分:2)

您可以格式化日期:

date.ToString("dd.MM.yyyy")

格式化数字时,期间.会根据所使用的CultureInfo而改变,但不会在格式化日期时更改。

如果您要根据代码分析规则CA1304: Specify CultureInfo验证代码,即使对于此特定格式无关紧要,您也必须使用不变文化:

date.ToString("dd.MM.yyyy", CultureInfo.InvariantCulture)