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

如何在Power Query M中将日期时间转为带时区偏移格式用于REST API

Power Query M 实现代码

下面是符合要求的日期转换与API请求体生成代码,解决400错误的核心是正确调整结束日期到当日最后一秒并生成标准UTC时区的ISO8601格式字符串:

let
    // 定义原始日期参数
    FirstDate = #datetime(2023, 2, 1, 0, 0, 0),
    EndDate = #datetime(2023, 5, 30, 0, 0, 0),

    // 处理起始日期:转换为UTC时区并格式化
    FormattedFrom = DateTimeZone.ToText(
        DateTimeZone.SwitchZone(DateTimeZone.FromLocal(FirstDate), 0),
        "yyyy-MM-dd'T'HH:mm:ss'+'00:00"
    ),

    // 处理结束日期:先调整为当日最后一秒,再转换为UTC时区并格式化
    AdjustedEndDate = DateTime.AddSeconds(DateTime.AddDays(EndDate, 1), -1),
    FormattedTo = DateTimeZone.ToText(
        DateTimeZone.SwitchZone(DateTimeZone.FromLocal(AdjustedEndDate), 0),
        "yyyy-MM-dd'T'HH:mm:ss'+'00:00"
    ),

    // 生成符合API要求的JSON请求体
    RequestBody = Json.FromValue([
        from = FormattedFrom,
        to = FormattedTo
    ])
in
    RequestBody

关键说明

  • 结束日期调整:原始EndDate是5/30 00:00,通过DateTime.AddDays(EndDate, 1)得到5/31 00:00,再减1秒得到5/31 23:59:59,匹配API要求的时间范围。
  • 时区处理:用DateTimeZone.FromLocal将本地时间转为带时区的时间,再通过SwitchZone(0)切换到UTC+00:00,确保时区标识正确。
  • 格式控制:通过DateTimeZone.ToText指定格式字符串,生成API需要的yyyy-MM-dd'T'HH:mm:ss'+00:00'格式。

如果你的原始日期已是UTC时间,可去掉DateTimeZone.FromLocal,直接用DateTimeZone.From(FirstDate, 0)来转换。

内容的提问来源于stack exchange,提问作者kiran25

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 05:23:17