2010-12-02 53 views
1

我猜我錯過了一些明顯的東西,但這裏有...從字符串到DateTime的.NET Convert.ChangeType不尊重時區?

它現在是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)。我不能(也不想)更改代碼以使用不同的轉換方法。

回答

3

使用偏移感知結構DateTimeOffset而不是DateTime

+0

DateTimeOffset實際上不是時區感知的 - 它只是*偏移*意識。它代表即時時間,但沒有關聯的時區。 – 2010-12-02 20:17:15