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

使用PowerShell生成PO邮件:ARR_Arrived_Date日期格式修正求助

解决PowerShell中ARR_Arrived_Date列的短日期格式问题

我明白你的需求——你已经能成功获取PO数据并生成HTML邮件,但ARR_Arrived_Date显示的是带时间的完整日期,想改成仅显示短日期格式对吧?这其实可以通过在转换为HTML前先处理数据的方式解决,下面给你两种可行的方案:

方案1:使用计算属性格式化日期

在Select-Object中通过计算属性来重新定义ARR_Arrived_Date的输出格式,然后再传给ConvertTo-Html。这样能确保生成的HTML里只显示短日期:

$data = Invoke-RestMethod -Uri https://XXXXXXX/api/v1/BaqSvc/ArrivedPO/ -Credential $Cred -ContentType "Application/Json; charset=UTF-8"
$Header = @"
<style>
TABLE {border-width: 1px; border-style: solid; border-color: #CCCCCC; border-collapse: collapse;}
TH {border-width: 1px; padding: 3px; border-style: solid; border-color: black; background-color: #00FF00;}
TD {border-width: 1px; padding: 3px; border-style: solid; border-color: black;}
</style>
"@
$message.IsBodyHTML = $true
# 这里用计算属性处理日期格式
$processedData = $data.value | Select-Object `
    ARR_PONum,
    ARR_PackSlip,
    ARR_Vendor_Name,
    @{Name='ARR_Arrived_Date'; Expression={ Get-Date $_ -Format 'MM/dd/yyyy' }},
    ARR_Days_Arrived,
    ARR_FirstName,
    ARR_LastName,
    ARR_OrderNum,
    ARR_OpportunityID,
    ARR_Name
$message.Body = $processedData | ConvertTo-Html -Head $Header

细节说明:

  • @{Name='ARR_Arrived_Date'; Expression={ ... }} 是PowerShell的计算属性语法:
    • Name 指定输出的列名(保持和原列名一致,避免表头混乱)
    • Expression 里的逻辑用来转换日期格式:Get-Date $_ -Format 'MM/dd/yyyy' 会把输入的日期值转换成MM/dd/yyyy的短日期格式(比如10/16/2019)

方案2:针对字符串类型的日期处理

如果API返回的ARR_Arrived_Date是字符串类型(而非DateTime对象),可以先把它解析成DateTime再格式化:

@{Name='ARR_Arrived_Date'; Expression={ [DateTime]::Parse($_).ToString('MM/dd/yyyy') }}

这样能确保即使原始数据是字符串,也能正确转换为短日期格式。

这两种方法都能让你的邮件里只显示短日期,不会带多余的时间部分,你可以根据自己的实际数据类型选择合适的方案~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:20:29