.NET Convert.ChangeType из строки в DateTime не учитывает часовой пояс? - PullRequest
1 голос
/ 02 декабря 2010

Полагаю, я упускаю что-то очевидное, но здесь идет ...

В настоящее время в горном часовом поясе декабрь, то есть MST и -07: 00.В следующем коде .NET возвращает DateTime с временной частью 1:34 PM, что соответствует -06: 00.Что я делаю неправильно?

private void button1_Click( object sender, EventArgs e )
    {
    DateTime test = new DateTime();
    test = (DateTime)System.Convert.ChangeType( "1988-08-08T12:34:00.000-07:00", Type.GetType( "System.DateTime" ), CultureInfo.CurrentCulture );
    MessageBox.Show( test.ToString() ); // shows "8/8/1988 1:34:00 PM"
    }

Я должен упомянуть, что я извлек эту концепцию (используя Convert.ChangeType) из кишок JSON.NET, где я изначально столкнулся с проблемой.Я не могу (и не хочу) изменять код для использования другого метода преобразования.

1 Ответ

3 голосов
/ 02 декабря 2010

Используйте структуру со смещением DateTimeOffset вместо DateTime.

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