2010-06-15 59 views
1
string strdate="15/06/2010"; 

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

我无法获得日期时间值为dd/mm/yyyy。 它给予例外'字符串不被识别为有效的日期时间'将字符串转换为有效的日期时间

oly如果它是在06/15/2010这是工作。如何在dt中获得相同的格式。

+0

可能会更好,如果你提到的语言...... – xenoterracide 2010-06-15 10:21:52

回答

4

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

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

需要注意的是,如果这是用户输入,您可能需要使用TryParseExact代替。

0

您目前正在使用目前的文化,这似乎是为美国风格的日期格式设置的。试试这个:

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

这告诉函数使用英国日期样式格式的工作。您可能希望将en-GB更改为您的日期所处的文化。如果您有许多文化很重要的调用,则可能需要为整个线程设置它,而不是通过调用进行调用。

相关问题