我正在使用 Excel 计算一系列事件发生的时间,这些事件发生在距开始时间一定小时数的位置。我希望结果以我的当地时间显示。
我的时区将于 11 月 1 日凌晨 2 点停止夏令时,但结果并未反映出这一变化。
有没有办法将当地时区和 DST 合并到 Excel 日期时间表达式中?
答案1
如果您想要非 VBA 解决方案,则可以使用公式来创建时间偏移,具体取决于相关日期是否属于 DST 日。在英国,这对我来说是一个更简单的问题,但按照美国标准(三月的第二个星期日和十一月的第一个星期日),这有点麻烦。
我不太清楚您当前的公式如何工作或它们的频率,但您可以向它们添加的偏移量将计算出如下内容:
=IF(WEEKDAY(My_Date,3)<>6,0,
IF(
AND(
Month(My_Date)=11,
My_Date-EOMONTH(My_Date,-1)<=7),
1,
IF(
AND(
Month(My_Date)=3,
My_Date-EOMONTH(My_Date,-1)>7,
My_Date-EOMONTH(My_Date,-1)<=14,
-1,
0)
)
)
基本上,我们检查日期是否为星期日。如果不是,则偏移量为零。如果是,则检查它是否是 11 月,并且距离上个月的结束时间不到 7 天,在这种情况下偏移量为 +1。否则,检查它是否是 3 月,并且距离上个月的结束时间不到 7-14 天。如果是,则偏移量为 -1。
由于缺乏有关您当前公式的更多信息,上述解决方案仅考虑了整天的情况,听起来您的问题更具有时间针对性。上述公式应该仍然成立,但可能需要在这里或那里添加 1/24,以便它仅在您想要的确切实例中触发。