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

如何在PowerShell的Web请求体中使用动态月份起止日期?

PowerShell 动态生成指定格式的Web请求体

步骤1:获取当前月份的起始和结束日期(UTC格式)

先计算当前月份的第一天和最后一天,并转换为你需要的yyyy-MM-ddTHH:mm:ss+00:00格式:

# 获取当前月份第一天的UTC时间,格式化为指定样式
$currentMonthStart = (Get-Date -Day 1 -Hour 0 -Minute 0 -Second 0).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss+00:00")

# 获取当前月份最后一天的UTC时间,格式化为指定样式
$currentYear = (Get-Date).Year
$currentMonth = (Get-Date).Month
$lastDayOfMonth = [DateTime]::DaysInMonth($currentYear, $currentMonth)
$currentMonthEnd = (Get-Date -Day $lastDayOfMonth -Hour 23 -Minute 59 -Second 59).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss+00:00")

步骤2:生成请求体的三种方式

方式一:双引号字符串插值(推荐简单场景)

PowerShell中双引号字符串支持直接解析变量,只需注意转义JSON中的双引号(用两个双引号""代替单个"):

$body = "{""timePeriod"":{""from"":""$currentMonthStart"",""to"":""$currentMonthEnd""}}"

方式二:哈希表转JSON(推荐复杂场景,避免格式错误)

用哈希表构建请求结构,再转换为JSON字符串,这种方式最不容易出错,尤其适合嵌套结构的请求体:

# 构建哈希表结构
$requestBodyObject = @{
    timePeriod = @{
        from = $currentMonthStart
        to = $currentMonthEnd
    }
}

# 转换为压缩格式的JSON字符串
$body = $requestBodyObject | ConvertTo-Json -Compress

方式三:字符串拼接(不推荐,易出错)

如果用单引号字符串,就需要手动拼接变量,这种方式容易因为引号遗漏导致格式错误:

$body = '{"timePeriod":{"from":"' + $currentMonthStart + '","to":"' + $currentMonthEnd + '"}}'

验证结果

执行完上述代码后,$body的内容会自动替换为当前月份的起止日期,格式完全符合要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 16:12:45