如何将文本转换为日期?

时间:2010-07-14 18:41:28

标签: c# winforms

我有这种文字格式:

8/27/2009 8:23:06 AM

Thu Aug 27 12:42:22 2009

08/12/2009 20:22

我需要得到这个:dd / mm / yyyy

如何在C#Winform代码中执行此操作?

提前谢谢

3 个答案:

答案 0 :(得分:5)

您可以使用DateTime.Parse(...)解析它,然后使用DateTime.ToString()将其打印出来。

var date1 = DateTime.Parse("8/27/2009 8:23:06 AM", CultureInfo.GetCultureInfo("en-US"));
var date2 = DateTime.Parse("Thu Aug 27 2009 12:42:22", CultureInfo.GetCultureInfo("en-US")); //Edited the date a little
var date3 = DateTime.Parse("08/12/2009 20:22", CultureInfo.GetCultureInfo("en-US"));

Console.WriteLine(date1.ToString("dd/MM/yyyy", CultureInfo.GetCultureInfo("en-US")));
Console.WriteLine(date2.ToString("dd/MM/yyyy", CultureInfo.GetCultureInfo("en-US")));
Console.WriteLine(date3.ToString("dd/MM/yyyy", CultureInfo.GetCultureInfo("en-US")));

有些可能对你来说多余。我住在DK并拥有DK文化,所以如果你有一台美国电脑,我就无法解析相同的字符串。因此,我明确地设定了文化。如果您有标准的美国文化或想要使其他文化适应,那么您可以使用:

//for parsing
var date1 = DateTime.Parse("A date");
//for printing
date1.ToShortDateString();

作为fletcher,如果你解析用户输入或数据,你可以使用DateTime.TryParse来预期提供日期字符串中的缺陷。

答案 1 :(得分:2)

对于那些特定的格式,我会使用DateTime.TryParse函数。我很确定只有你提供的最后一个字符串才能被解析操作接受,TryParse函数将返回一个布尔值,表示操作成功。获得生成的DateTime对象后,可以使用ToShortDateString函数以ShortDate格式输出字符串,或者如果愿意,可以指定其他格式。

DateTime date = new DateTime();            

bool parseSucceeded = DateTime.TryParse("08/12/2009 20:22", out date);

if(parseSucceeded)
Console.WriteLine(date.ToShortDateString());

答案 2 :(得分:1)

DateTime.Parse( “文本”)