将字符串转换为dateTime

时间:2011-08-20 11:56:28

标签: c# asp.net datetime localhost typeconverter

在此site

这很奇怪。

        DateTime a = DateTime.Parse("5/26/2011");
        Response.Write(a.ToShortDateString());

localhost中的这段代码工作正常。

但是,但是

主持人

说错误:

字符串未被识别为有效的DateTime。

在此site

3 个答案:

答案 0 :(得分:4)

您需要使用DateTime.ParseExact(),它可以指定您的文化和格式。

以下是使用InvariantCulture的示例:

DateTime dateTime = DateTime.ParseExact("5/26/2011", 
                                        "MM/dd/yyyy", 
                                        CultureInfo.InvariantCulture);

这是一个专门使用en-US的人:

DateTime dateTime = DateTime.ParseExact("5/26/2011", 
                                     "MM/dd/yyyy", 
                                     CultureInfo.CreateSpecificCulture("en-US"));

看看the MSDN docs

答案 1 :(得分:1)

这是一种文化依赖的错误。只需将正确的文化传递给parse方法:

DateTime a = DateTime.Parse("5/26/2011", CultureInfo.CreateSpecificCulture("en-US"));

答案 2 :(得分:0)

重申Yuck和Sorantis的评论:

static void Main(string[] args)
{
    foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.AllCultures))
    {
        try
        {
            DateTime.Parse("5/26/2011", ci);
            Console.WriteLine(String.Format("Able to parse with {0} CultureInfo object.", ci));
        }
        catch
        {
            Console.WriteLine(String.Format("Unable to parse with {0} CultureInfo object.", ci));
        }
    }
    Console.ReadLine();
}