如何在C#中将dd-mm-yyyy格式转换为MM / dd / yyyy?

时间:2017-05-18 13:29:54

标签: c# date-conversion

我正在尝试将字符串dd-mm-yyyy转换为MM/dd/yyyy。我尝试了不同的方法,但没有任何效果。我目前的逻辑是:

 string convertDate = DateTime.ParseExact(date, "dd-mm-yyyy", CultureInfo.InvariantCulture)
                      .ToString("MM/dd/yyyy",CultureInfo.InvariantCulture);

它没有按预期转换日期。它把月份放在月份和日期的地方,如果大于12的日子比月份设定为01.

3 个答案:

答案 0 :(得分:4)

您应该在解析和格式说明符中使用MM来表示“月”。 (mm表示“分钟”!)

 string convertDate = DateTime.ParseExact(date, "dd-MM-yyyy", CultureInfo.InvariantCulture)
                  .ToString("MM/dd/yyyy",CultureInfo.InvariantCulture);

实例:http://rextester.com/KNA28139

答案 1 :(得分:0)

您应该将ParseExact模式从dd-mm-yyyy修改为dd-MM-yyyy,因为mm表示分钟为0填充。然后你的代码将很好地适合你的目标。您可以尝试以下代码。

string date = "18-05-2017";
string convertDate = DateTime.ParseExact(date, "dd-MM-yyyy", CultureInfo.InvariantCulture).ToString("MM/dd/yyyy",CultureInfo.InvariantCulture);
Console.WriteLine(convertDate);

答案 2 :(得分:-1)

如果你想格式化DateTime,我可能会做的只是在DateTime对象上使用.ToString()方法,然后在新行上更改文化,如:

Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");

var date = DateTime.Now.ToString("MM/dd/yyyy");