.NET Convert.ChangeType从字符串到DateTime不尊重时区?

时间:2010-12-02 20:13:40

标签: .net datetime timezone

我猜我错过了一些显而易见的东西,但这里有......

目前是12月的山区时区,意思是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"
    }

我应该提一下,我从JSON.NET的内容中提取了这个概念(使用Convert.ChangeType),我最初遇到了这个问题。我不能(也不想)更改代码以使用不同的转换方法。

1 个答案:

答案 0 :(得分:3)

使用偏移感知结构DateTimeOffset而不是DateTime