將日期時間保存到數據庫之前不久我將DateTime投射到OracleTimeStampTZ中。 這將DateTime轉換爲當前時區中的OracleTimeStampTZ,這很酷,這正是我想要的。除了時區被表示爲時間設置(+13,因爲我在新西蘭)。將日期時間投射到OracleTimeStampTZ
現在我有點害怕這會咬我的屁股關於夏令時。我寧願將OracleTimeStampTZ.TimeZone表示爲命名時區(因此也是數據庫中的命名時區)。
爲了一致性我想使用由.NET(IE使用TimeZoneInfo.Local)確定的時區。
問題是TimeZoneInfo似乎沒有包含與oracle時區名稱匹配的時區名稱。另外,OracleTimeStampTZ.TimeZone屬性是隻讀的。
任何人都知道一個很好的實現方式嗎?
在此先感謝
==編輯解釋我對DST ==擔憂
OK,就是我擔心的是以下幾點: 說我現在保存日期在數據庫中的事件發生在從現在開始的一年半(無論如何都是夏時制的另一側)。
說我保存的日期/時間是16:00 +13。當我們到達夏時制的另一邊時,我國的偏移量可能是+12,這意味着在我當地的時區中,我先前保存的日期被認爲是15:00,因爲我的偏移量已更改,但已存儲的日期沒有。
根據我的理解,如果存儲了指定的時區,那麼當我們在夏令時的另一側評估日期時,我們可以根據是否爲夏令時確定正確的偏移量。
我描述的正確嗎?
當然,如果我可以使默認的DateTime轉換爲OracleTimeStampTZ,並使用指定的時區,我也會很高興。 – tobyc 2009-02-25 04:04:50