如何在不使用代码的情况下格式化日期 - 格式字符串问题

时间:2009-01-01 16:51:29

标签: c# datetime formatting

如何使用格式字符串实现以下功能:Do 01.01.2009? 它必须适用于所有语言(例如德国的例子)。所以应该只有短工作日,然后是短日期。

我试过'ddd''(没有')。然而,这导致'Do 01'。 是否有一个我可以放在'd'之前的角色,以便它可以单独使用或类似的东西?

6 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

如果您的目标受众使用不同的语言,则应使用ISO 8601标准。

DateTime.Now.ToString("ddd yyyy-MM-dd");

或者,您可以使用较短的日期定位当前文化:

DateTime.Now.ToString("d", Thread.CurrentThread.CurrentCulture);

或长日期:

DateTime.Now.ToString("D", Thread.CurrentThread.CurrentCulture);

答案 2 :(得分:0)

要获取特定于语言环境的短日期以及语言环境日名称,那么您将不得不使用两个调用,因此:

 myDate.ToString("ddd ") + myDate.ToString("d");

您是否考虑过使用长日期格式?

答案 3 :(得分:0)

如果你想本地化(我假设,因为你说“所有语言”),你可以使用CultureInfo来设置你想要显示的不同文化。 MSDN库包含Standard Date and Time Format StringsCultureInfo Class的信息。

示例MSDN提供:

// Display using pt-BR culture's short date format
DateTime thisDate = new DateTime(2008, 3, 15);
CultureInfo culture = new CultureInfo("pt-BR");      
Console.WriteLine(thisDate.ToString("d", culture));  // Displays 15/3/2008

答案 4 :(得分:0)

仅供参考,在Java中它是这样的:

DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
Date date = new Date();
String formattedDate = dateFormat.format(date);

答案 5 :(得分:0)

如果要确保将相同的字符用作分隔符,则必须使用反斜杠来转义字符,否则它将默认为您所在的语言环境。如果您需要指定的格式,我建议使用此字符串在你的问题

DateTime.Now.ToString("ddd dd.MM.yyyy");

要使用正斜杠,您应该转义它们,以便它们始终以斜杠形式输出。

DateTime.Now.ToString("ddd dd\\/MM\\/yyyy");