You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让电子表格指定单元格始终显示伦敦(GMT+0)当前时间

如何让电子表格指定单元格始终显示伦敦(GMT+0)当前时间

嘿,这个需求我之前帮朋友搞定过,不同电子表格软件的实现方式略有不同,我给你分情况说明哈:

Google Sheets 实现方法

Google Sheets直接支持时区参数,用下面的公式就能轻松搞定,不管用户在哪个时区,单元格都会显示伦敦当地时间(自动处理夏令时哦):

=TEXT(NOW(), "yyyy-mm-dd HH:mm:ss", "Europe/London")
  • 解释一下:NOW()获取当前的时间戳,第三个参数"Europe/London"指定时区为伦敦,TEXT()函数用来设置时间显示格式,你可以根据需求调整格式字符串,比如只想显示时间的话改成"HH:mm:ss"就行。
  • 注意:Google Sheets默认会自动刷新这个公式的结果,不需要额外设置。

Excel 实现方法

Excel默认依赖系统时区,所以得用点小技巧来实现,分两种情况:

方法1:用公式自动处理夏令时(适用于Excel 365及以上版本)

Excel 365有UTCNO()函数可以直接获取UTC时间,结合英国夏令时的规则(三月最后一个周日到十月最后一个周日),用下面的公式就能得到伦敦当地时间:

=TEXT(IF(AND(DATE(YEAR(UTCNO()),3,31)-WEEKDAY(DATE(YEAR(UTCNO()),3,31),2)+1<=UTCNO(),UTCNO()<DATE(YEAR(UTCNO()),10,31)-WEEKDAY(DATE(YEAR(UTCNO()),10,31),2)+1),UTCNO()+TIME(1,0,0),UTCNO()),"yyyy-mm-dd HH:mm:ss")
  • 逻辑说明:先判断当前UTC时间是否处于英国夏令时区间,是的话给UTC时间加1小时(转为BST),否则直接用UTC时间(GMT),最后用TEXT()格式化显示。

方法2:用VBA自定义函数(适用于所有Excel版本)

如果你的Excel版本没有UTCNO(),可以写个简单的VBA函数来实现:

  1. 按下Alt + F11打开VBA编辑器;
  2. 插入一个新模块,粘贴以下代码:
Function LondonTime() As Date
    Dim utcTime As Date
    ' 获取UTC时间
    utcTime = DateAdd("h", -TimeZoneInformation.Bias / 60, Now())
    
    ' 计算英国夏令时的开始和结束日期(三月最后一个周日到十月最后一个周日)
    Dim dstStart As Date, dstEnd As Date
    dstStart = DateSerial(Year(utcTime), 3, 31 - Weekday(DateSerial(Year(utcTime), 3, 31), vbMonday) + 1)
    dstEnd = DateSerial(Year(utcTime), 10, 31 - Weekday(DateSerial(Year(utcTime), 10, 31), vbMonday) + 1)
    
    ' 判断是否处于夏令时,返回对应时间
    If utcTime >= dstStart And utcTime < dstEnd Then
        LondonTime = utcTime + TimeSerial(1, 0, 0)
    Else
        LondonTime = utcTime
    End If
End Function
  1. 回到Excel,在目标单元格输入=LondonTime(),然后设置单元格格式为你需要的时间样式即可。
  • 注意:使用VBA的话,文件需要保存为.xlsm格式(启用宏的工作簿),并且打开时要启用宏。

备注:内容来源于stack exchange,提问作者tjo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 08:19:38