2010-12-02 1 views
1

私は何か明白なものを見逃していると思っていますが、ここに行く....NET Convert.ChangeTypeからstring to DateTimeはタイムゾーンを考慮していませんか?

山岳時間帯では現在12月で、-07:00です。次のコードでは、.NETは時刻部分が1:34 PMのDateTimeを返します。これは-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

DateTimeの代わりにオフセット対応の構造体DateTimeOffsetを使用してください。

+0

DateTimeOffsetは実際にタイムゾーンを意識するものではなく、ちょうど*オフセット*に対応しています。それは時間内の瞬間を表しますが、タイムゾーンは関連付けられていません。 –

+0

@ジョン - 訂正していただきありがとうございます。ところで、NodaTimeはこのようなことをうまく処理していますか? – Oded

+0

これは、最終的には:) –

関連する問題