string strdate="15/06/2010";
DateTime dt =
DateTime.Parse(strdate,
System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat);
我无法将日期时间值设为dd / mm / yyyy。 它给出异常'字符串不被识别为有效的日期时间'
如果是在2010年6月15日它正在运作的话。如何在dt中获得相同的格式。答案 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更改为您的日期所在的文化。如果您有许多文化很重要的调用,那么为整个线程设置它而不是逐个调用也是值得的。