преобразовать строку в dateTime - PullRequest
0 голосов
/ 20 августа 2011

на этом сайте

Это очень странно.

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

этот код в localhost работает нормально.

Но, но

на хосте говорят об ошибке:

Строка не была распознана как допустимый DateTime.

на этом сайте

Ответы [ 3 ]

4 голосов
/ 20 августа 2011

Вам нужно использовать 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"));

Взгляните на документы MSDN .

1 голос
/ 20 августа 2011

Это ошибка, зависящая от культуры. Просто передайте правильную культуру методу parse :

DateTime a = DateTime.Parse("5/26/2011", CultureInfo.CreateSpecificCulture("en-US"));
0 голосов
/ 20 августа 2011

Просто чтобы повторить комментарии Юка и Сорантиса:

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();
}
...