将字符串转换为有效日期时间

时间:2010-06-15 10:19:54

标签: c# .net datetime

string strdate="15/06/2010";

DateTime dt = 
     DateTime.Parse(strdate, 
     System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat);

我无法将日期时间值设为dd / mm / yyyy。 它给出异常'字符串不被识别为有效的日期时间'

如果是在2010年6月15日它正在运作的话。如何在dt中获得相同的格式。

2 个答案:

答案 0 :(得分:4)

嗯,大概是你的线程目前的文化期望MM / dd / yyyy。如果你想使用dd / MM / yyyy,那么你应该明确指定。我个人更喜欢ParseExact而不是Parse,因为这样可以提供更多控制权。我会使用类似的东西:

DateTime dt = DateTime.ParseExact(strdate, "dd/MM/yyyy",
    CultureInfo.InvariantCulture);

请注意,如果这是用户输入,您可能需要使用TryParseExact

答案 1 :(得分:0)

您目前正在使用当前的文化,这种文化似乎是针对美式日期格式设置的。试试这个:

DateTime.Parse(strdate, System.Globalization.CultureInfo.CreateSpecificCulture("en-GB"));

这告诉函数使用英国日期样式格式。您可能希望将en-GB更改为您的日期所在的文化。如果您有许多文化很重要的调用,那么为整个线程设置它而不是逐个调用也是值得的。