Azure 逻辑应用表达式-convertTimeZone() 失败 - 从 02:00 AM CET/CEST 转换为 UTC

问题描述 投票:0回答:1

目标:

将 CET/CEST 时间转换为 UTC

在逻辑应用表达式中使用:

convertTimeZone('时间戳', 'sourceTimeZone', 'destinationTimeZone', '格式'?)

我的逻辑应用程序设计如下:

HTTP 触发器和用于转换日期时间的撰写操作。

工作流程图片

触发器主体

第 1 期

测试 2024-10-27T01:00:00 CEST 时间,转换后的 UTC 时间戳为 2024-10-26T23:00:00+00:00。这是正确的并且符合预期。 CEST-02:00 = UTC

预期转化及有效

测试 2024-10-27T02:00:00,即 CEST 或 CET。转换失败并出现以下错误。

无法处理行“0”和列“0”处的操作“ConvertedDateTime”输入中的模板语言表达式:“模板语言函数“convertTimeZone”被赋予时间戳“2024-10-27T02:00:00.0000000”,该时间戳是源时区 'W. 无效或不明确。欧洲标准时间'.'.

转换失败

我在此处的输入中缺少任何格式吗???

逻辑应用程序应该在 CEST 或 CET 中考虑此时间戳 (2024-10-27T02:00:00) 并转换为 UTC,不是吗???

第2期

转换后的时间戳不包含时区偏移信息。

转换 UTC > IST。 IST 比 UTC 早 05:30。提供的输入为2025-01-01T00:00:00,预期为2025-01-01T05:30:00+05:30,但结果为2025-01-01T05:30:00+00:00 。时间已转换,但未设置时区信息。

时区偏移缺失

参考下面的 MS 文档了解所有这些内容 https://learn.microsoft.com/en-us/azure/logic-apps/workflow-definition-language-functions-reference#converttimezone https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-time-zones?view=windows-11

c# .net azure datetime azure-logic-apps
1个回答
0
投票

转换后的时间戳不包含时区偏移信息。转换 UTC > IST。 IST 比 UTC 早 05:30。时间已转换,但未设置时区信息。

您需要使用自定义格式,包括偏移量,如使用以下设计:

enter image description here

concat(variables('var'),'+',formatDateTime(convertTimeZone(variables('var'), 'UTC', 'India Standard Time'),'HH:mm:ss'))

输出:

enter image description here

测试 2024-10-27T01:00:00 CEST 时间,转换后的 UTC 时间戳为 2024-10-26T23:00:00+00:00。这是正确的并且符合预期。 CEST-02:00 = UTC。测试 2024-10-27T02:00:00,即 CEST 或 CET。转换失败并出现以下错误。

发生这种情况是因为当天夏令时转换。要使其工作,您需要添加偏移量。

addToTime('2024-10-27T02:00:00', 1, 'Hour')

enter image description here

输出:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.