字符串到MM/dd/yyyy

RG-*_*G-3 -3 c# c#-4.0

我有一个像这样的字符串:

2013年3月4日或者像这样11/10/2012.这是mm/dd/yyyy格式,我想转换为MM/dd/yyy.我这样做:

 DateTime publicationDate = DateTime.ParseExact(myDate, "MM/dd/yyyy", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

这给我一个错误:

String was not recognized as a valid DateTime.
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?

编辑:

在查看了所有答案后,我想显示DateTime变量的Month和Day.

所以我做不到这样的事情:

 string publicationDate = DateTime.ParseExact(myDate, "M/d/yyyy", CultureInfo.InvariantCulture).ToString("MM/dd/yyyy");
Run Code Online (Sandbox Code Playgroud)

有一个字符串将无法解决我的问题,因为我使用此变量只显示日期和月份.当我尝试将此"publicationDate"解析回DateTime时,会截断月份和日期的"0".

希望我在这里说明我的观点.

回答:

string publicationDate = DateTime.ParseExact(myDate, "M/d/yyyy", CultureInfo.InvariantCulture).ToString("MM/dd");
Run Code Online (Sandbox Code Playgroud)

Lar*_*rry 5

您应该在月和日添加前导零.

这样:04/03/2013

var myDateTime = DateTime.ParseExact(
                     "03/04/2013", 
                     "MM/dd/yyyy", 
                     System.Globalization.CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

如果前导零是一个问题,那么:

var myDateTime = DateTime.ParseExact(
                     "3/4/2013", 
                     "M/d/yyyy", 
                     System.Globalization.CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

最后,如果要添加前导零:

string myFormattedDateTime = DateTime.ParseExact(
                                "3/4/2013", 
                                "M/d/yyyy", 
                                System.Globalization.CultureInfo.InvariantCulture)
                             .ToString("MM/dd/yyyy");
Run Code Online (Sandbox Code Playgroud)