将日期时间保存到数据库之前不久我将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