我正在尝试将字符串dd-mm-yyyy
转换为MM/dd/yyyy
。我尝试了不同的方法,但没有任何效果。我目前的逻辑是:
string convertDate = DateTime.ParseExact(date, "dd-mm-yyyy", CultureInfo.InvariantCulture)
.ToString("MM/dd/yyyy",CultureInfo.InvariantCulture);
它没有按预期转换日期。它把月份放在月份和日期的地方,如果大于12的日子比月份设定为01.
答案 0 :(得分:4)
您应该在解析和格式说明符中使用MM
来表示“月”。 (mm
表示“分钟”!)
string convertDate = DateTime.ParseExact(date, "dd-MM-yyyy", CultureInfo.InvariantCulture)
.ToString("MM/dd/yyyy",CultureInfo.InvariantCulture);
答案 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");