将dd/MM/yyyy转换为MM/dd/YYYY

12
我需要将 "28/08/2012" 转换为 MM/dd/YYYY 格式,也就是 "08/28/2012"。 该怎么做?
我正在使用以下代码,但它却给我抛出了异常。
DateTime.ParseExact("28/08/2012", "ddMMyyyy",  CultureInfo.InvariantCulture)
2个回答

25

但是它向我抛出了异常

问题:

您的日期包含分隔符/"28/08/2012"),但在日期字符串格式中没有给出("ddMMyyyy")。

解决方案:

应该是"dd/MM/yyyy"

这样做

DateTime.ParseExact("28/08/2012", "dd/MM/yyyy", CultureInfo.InvariantCulture)
                        .ToString("MM/dd/yyyy", CultureInfo.InvariantCulture);

完成这些操作后,我们将获得一个填充了日期的DateTime对象,并使用所需的日期格式"MM/dd/yyyy"和可选的文化信息CultureInfo.InvariantCulture将其转换为字符串,方法是使用.ToString()


我想在字符串中检索格式。 - Lajja Thaker
是的,这就是它要做的事情。首先它会将其转换为DateTime,然后再转换回字符串。 - Nikhil Agrawal
@LajjaThaker:请阅读更新后的答案。 - Nikhil Agrawal

1

由于您的原始日期是在en-GB文化中,因此您可以创建一个CultureInfo对象并自然地解析您的DateTime

string date = "28/08/2012";
System.Globalization.CultureInfo ci = System.Globalization.CultureInfo.CreateSpecificCulture("en-GB");
Convert.ToDateTime(date,ci.DateTimeFormat).ToString("d");//short date pattern

(或者)

DateTime.Parse(date,ci.DateTimeFormat).ToString("d");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接