Azure Logic Apps中UTC时间转换为EST时区并获取正确UTC偏移量的问题
嘿,我来帮你搞定这个时区转换的问题!你已经离正确结果很近了——时间部分已经转换对了,但偏移量显示错误,这其实是时区标识符或者格式字符串的小问题导致的。
首先,你当前用的函数:convertTimeZone(utcNow(),'UTC','Eastern Standard Time','yyyy-MM-ddTHH:mm:ss.fffzzz')
已经把UTC时间18:31转换成了EST的14:31,但偏移量显示成+00:00是因为Windows时区名称Eastern Standard Time在夏令时期间(比如你例子里的10月30日)实际是EDT(东部夏令时),而zzz格式符在某些场景下没能正确识别对应的偏移量。
给你两个可行的解决办法:
方法一:改用IANA时区标识符
用更标准的IANA时区America/New_York代替Windows时区名称,它能更精准地处理夏令时和偏移计算,修改后的函数如下:convertTimeZone(utcNow(), 'UTC', 'America/New_York', 'yyyy-MM-ddTHH:mm:ss.fffzzz')方法二:调整格式字符串为
K
.NET的K格式符会自动输出目标时区对应的正确偏移量(夏令时显示-04:00,冬令时显示-05:00),修改后的函数:convertTimeZone(utcNow(), 'UTC', 'Eastern Standard Time', 'yyyy-MM-ddTHH:mm:ss.fffK')
这两种方法都能让你得到想要的结果:2023-10-30T14:31:05.123-04:00,你可以根据自己的习惯选一个试试~
备注:内容来源于stack exchange,提问作者David

