string.Format日期转换问题

时间:2012-12-29 08:23:04

标签: c# datetime

我使用的是Windows 8.我的文化是“en-IN”。但是日期时间的格式是MM / dd / yyyy
在尝试时

String.Format("{0:MM/dd/yyyy}", DateTime.Today);

给出的格式如12-29-2012。

请建议我该怎么做。

5 个答案:

答案 0 :(得分:7)

目前尚不清楚问题是什么。如果它只是使用连字符而不是斜杠,那可能是因为你的文化的默认日期分隔符是连字符。选项包括:

  • 明确指定不同的文化(例如不变文化)

    String.Format(CultureInfo.InvariantCulture, "{0:MM/dd/yyyy}", DateTime.Today);
    
  • 逃避斜杠:

    String.Format("{0:MM'/'dd'/'yyyy}", DateTime.Today);
    

请注意,使用DateTime.Today.ToString(...)比使用string.Format IMO更简单。

答案 1 :(得分:1)

这一个

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

答案 2 :(得分:1)

嗯,是的 - 您当前的文化被用于许多与格式相关的设置;

在这里,试试这个:

// Change culture
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-IN");
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-IN");

// prints 12-29-2012
Console.WriteLine(string.Format("{0:MM/dd/yyyy}", DateTime.Today));

// Invariant culture, so ignore any culture-based settings
// prints 12/29/2012
Console.WriteLine(string.Format(System.Globalization.CultureInfo.InvariantCulture, "{0:MM/dd/yyyy}", DateTime.Today));

答案 3 :(得分:1)

'/'是根据您(或指定的)文化翻译的custom date separator。如果你真的想要斜线,你需要引用它们:

String.Format("{0:MM'/'dd'/'yyyy}", DateTime.Today);

escape他们:

String.Format(@"{0:MM\/dd\/yyyy}", DateTime.Today);

答案 4 :(得分:0)

我认为你应该尝试这个

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