PowerBI调用Azure消费API时日期格式错误问题求助
解决PowerBI调用Azure消费API的日期格式错误问题
问题根源:你用
Date.ToText(Date.From(DateTime.LocalNow))生成的日期文本格式不符合Azure消费API要求,API需要的是ISO 8601 UTC标准格式(例如2024-05-20T00:00:00+00:00),而默认的Date.ToText输出格式(如5/20/2024)无法被API解析。另外请求体里from字段末尾缺少逗号,属于JSON语法错误,也会导致解析失败。修正步骤:
- 指定日期格式化规则,生成API兼容的UTC时间文本:
用Date.ToText(Date.From(DateTime.LocalNow), "yyyy-MM-ddTHH:mm:ss+00:00")强制输出标准ISO格式。 - 修复JSON语法:在
"from" : "2023-03-01T00:00:00+00:00"后面添加逗号,保证JSON结构合法。 - (可选)动态生成回溯一年的起始日期:如果不需要固定起始日,用
Date.AddYears(Date.From(DateTime.LocalNow), -1)计算一年前的日期,同样格式化后传入from字段。
- 指定日期格式化规则,生成API兼容的UTC时间文本:
修正后的完整代码:
currentdate = Date.ToText(Date.From(DateTime.LocalNow), "yyyy-MM-ddTHH:mm:ss+00:00"), // 可选:替换成动态一年前日期 // startdate = Date.ToText(Date.AddYears(Date.From(DateTime.LocalNow), -1), "yyyy-MM-ddTHH:mm:ss+00:00"), body = "{ ""type"": ""Usage"", ""timeframe"":""Custom"", ""timeperiod"": { ""from"" : ""2023-03-01T00:00:00+00:00"", ""to"": """ & currentdate & """" }, ""dataset"": { ""aggregation"": { ""totalCost"": { ""name"": ""Cost"", ""function"": ""Sum"" } }, ""granularity"" : ""Daily"", ""grouping"": [ { ""type"": ""Dimension"", ""name"": ""ResourceGroup"" }, { ""type"": ""Dimension"", ""name"": ""ServiceName"" } ] } }"
- 补充提示:
- 若要使用云基础设施启动日作为起始点,直接将
from字段的固定值替换为对应ISO格式日期即可。 - 若你的本地时区不是UTC,建议用
DateTime.UtcNow替代DateTime.LocalNow,避免时区偏差导致的日期计算错误。
- 若要使用云基础设施启动日作为起始点,直接将
内容的提问来源于stack exchange,提问作者Displaza
相关产品推荐
相关产品推荐

