如何将C#中的日期从一种格式转换为另一种格式?

Gra*_*rum -2 c#

我正在尝试将"2002年1月24日"转换为"01/24/2002".我一个接一个地碰到一堵墙.任何人都能解释一下我的错误吗?

CultureInfo provider = CultureInfo.InvariantCulture;

DateTime oDate = Convert.ToDateTime("Jan 24, 2002");

DateTime result = DateTime.ParseExact(oDate , "MM/dd/yyyy", provider);

String myString = result.ToString("MMddyyyy");

return myString;
Run Code Online (Sandbox Code Playgroud)

谢谢.

SO *_*ood 6

你是:

  1. 转换为 DateTime
  2. 将DateTime上一步转换为另一步DateTime,不确定原因.
  3. 转换所产生DateTime的string在你不想要的格式.

所有这些可能只是:

return DateTime.Parse("Jan 24, 2002").ToString("MM/dd/yyyy");
Run Code Online (Sandbox Code Playgroud)

并且,正如@Igor提到的,对于代码在不同文化下运行的情况,您应该传递CultureInfo适合格式:

var culture = new CultureInfo("en-us");
return DateTime.Parse("Jan 24, 2002", culture).ToString("MM/dd/yyyy");
Run Code Online (Sandbox Code Playgroud)

注意:DateTimes没有格式.使用时,格式将赋予字符串ToString()