目标:
将 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
转换后的时间戳不包含时区偏移信息。转换 UTC > IST。 IST 比 UTC 早 05:30。时间已转换,但未设置时区信息。
您需要使用自定义格式,包括偏移量,如使用以下设计:
concat(variables('var'),'+',formatDateTime(convertTimeZone(variables('var'), 'UTC', 'India Standard Time'),'HH:mm:ss'))
输出:
测试 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')
输出: