Power Query能否将时区文本转换为UTC偏移量数值?
Power Query 获取时区文本对应的UTC偏移量方案
Power Query没有直接通过文本格式的时区名称获取UTC偏移量的内置函数,不过可以通过间接方法实现需求:
方法1:结合具体日期时间计算偏移量(考虑夏令时)
部分时区存在夏令时调整,偏移量会随日期变化,结合你的日期时间列计算会更准确:
- 先将本地日期时间转换为对应时区的
DateTimeZone类型:DateTimeZone.From([你的日期时间列], [你的时区文本列]) - 提取该
DateTimeZone值的UTC偏移量(结果为持续时间类型,可转为小时数):// 提取偏移小时数 DateTimeZone.UtcOffset(DateTimeZone.From([你的日期时间列], [你的时区文本列])) / #duration(0, 1, 0, 0)
方法2:获取时区当前UTC偏移量(不结合指定日期)
如果不需要绑定具体日期,只想获取时区当前的偏移量,可以使用以下自定义函数:
let GetTimeZoneOffset = (timeZoneText as text) as number => let UtcNow = DateTimeZone.UtcNow(), LocalInTimeZone = DateTimeZone.SwitchZone(UtcNow, timeZoneText), OffsetHours = DateTimeZone.UtcOffset(LocalInTimeZone) / #duration(0, 1, 0, 0) in OffsetHours in GetTimeZoneOffset
将上述代码添加为自定义函数,传入时区文本即可返回当前的UTC偏移小时数。
注意:使用时确保时区文本符合Windows时区标识符规范(比如"Pacific Standard Time");如果你的时区文本是
UTC-8这类格式,可直接通过文本解析提取数值。
内容的提问来源于stack exchange,提问作者Kinsley
相关产品推荐
相关产品推荐

