如何将UTC日期/时间准确转换为GMT/BST(伦敦时区时间)
UTC转伦敦时间(精准处理夏令时切换)
问题根源
你的公式逻辑框架正确,但两个细节导致切换时间延迟1秒:
- 额外减去了
1/24(1小时),偏移了判断的时间基准点 - 使用严格小于0的判断条件,导致刚好在切换时刻(01:00:00 UTC)无法触发转换逻辑
修正后的公式
=IF([@[Date/Time UTC]]="","", [@[Date/Time UTC]] + IF( PRODUCT( [@[Date/Time UTC]] - DATE(YEAR([@[Date/Time UTC]]),{4,11},1-WEEKDAY(DATE(YEAR([@[Date/Time UTC]]),{4,11},0))) ) <=0, 0,1) /24)
关键调整说明
- 移除了原公式中多余的
-1/24,让判断时间点精准对齐夏令时切换的UTC标准时刻(3月最后一个周日01:00、10月最后一个周日01:00) - 将判断条件从
<0改为<=0,确保刚好在切换时刻时触发正确转换:- 2023年3月26日01:00:00 UTC → 加1小时,得到
02:00:00 BST - 2023年10月29日01:00:00 UTC → 不加小时,得到
01:00:00 GMT
- 2023年3月26日01:00:00 UTC → 加1小时,得到
内容的提问来源于stack exchange,提问作者Statto
相关产品推荐
相关产品推荐

