Проблема с форматом даты и времени на сервере - PullRequest
0 голосов
/ 27 мая 2011

У меня проблема при попытке отфильтровать список между 2 датами. У меня есть решение, работающее на нашей локальной машине .NET 3.5. Решение работает без ошибок. Но когда я помещаю его на наш сервер (2008), я получаю

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

Я могу воссоздать проблему локально, если я изменю формат даты / времени на моих машинах с английского (Великобритания) на английский (США).

Проблема в том, что я установил настройки сервера точно так же, как и в локальном решении, и я все еще получаю ошибки.

Используется код

public DateTime StartDate
    {
        get
        {
            if (this.ViewState["StartDate"] != null)
            {
                return DateTime.Parse(this.ViewState["StartDate"].ToString());     
            }
            else { return DateTime.Today.AddYears(-1); }
        }
        private set
        {
            this.ViewState["StartDate"] = value.ToString();
        }
    }

    public DateTime EndDate
    {
        get
        {
            if (this.ViewState["EndDate"] != null)
            {
                return DateTime.Parse(this.ViewState["EndDate"].ToString());
            }
            else { return DateTime.Today; }
        }
        private set
        {
            this.ViewState["EndDate"] = value.ToString();
        }
    }

Пожалуйста, помогите!

Ответы [ 2 ]

1 голос
/ 27 мая 2011

Используйте ParseExact.Это позволит вам указать формат даты независимо от локали устройства.

Множество вопросов о переполнении стека.

.NET Строка синтаксического анализа в DateTime

0 голосов
/ 27 мая 2011

Hej, попробуйте указать информацию о культуре для метода DateTime.Parse, например:

DateTime.Parse(dateString, new CultureInfo("en-US", false))

больше здесь http://msdn.microsoft.com/en-us/library/1k1skd40.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...