【问题标题】:How to format the date output of my PowerShell script如何格式化我的 PowerShell 脚本的日期输出
【发布时间】:2017-08-03 20:12:33
【问题描述】:

我已经创建了这个脚本:

$olFolderInbox = 6
$outlook = New-Object -Com Outlook.Application;
$ns = $outlook.GetNameSpace("MAPI");
$inbox = $ns.GetDefaultFolder($olFolderInbox)
$inbox.Items | foreach {
    "$($_.SenderEmailAddress)%$($_.Subject)%$($_.CreationTime)" |
        Out-File x:\zzz\ccc\test.csv -Append
}

我希望将日期时间格式化为英国格式的日期。

有什么想法吗?

【问题讨论】:

  • 假设$_.CreationTime 是一个实际的DateTime 对象:$_.CreationTime.ToString('dd\/MM\/yyyy')

标签: powershell date datetime formatting format


【解决方案1】:

ToString函数用于改变数字、日期等的格式Here's a list of common codes you might be interested in looking at。

"$($_.SenderEmailAddress)%$($_.Subject)%$($_.CreationTime.ToString('d'))" |
    Out-File x:\zzz\ccc\test.csv -Append

仅使用列表中的一个字母即可获得特定模式。如果您指定多个,则表示您需要自定义模式。例如,d 将为您提供:8/3/2017,而yyyy.dd.mm 将为您提供自定义模式:2017.03.08。

多次使用一个字母会改变解释该特定代码的方式。 d(当天)的示例:

  1. dd : 14
  2. ddd : 星期四
  3. dddd : 星期四

这意味着您可以随心所欲地弹道: ToString("dddd MMMM d, yyyy"))

【讨论】:

    【解决方案2】:

    只是为了扩展 Zach 的答案,您可以以类似的方式使用格式运算符 -f:

    "{0:dd}/{0:MM}/{0:yy}" -f (get-date)
    

    如果您在英国,您可能已经对日期时间对象上存在的方法感到幸运

    $date.ToShortDateString()
    

    我的机器设置为美国英语,但它给了我美国版本的 m/d/y

    【讨论】:

      猜你喜欢
      • 2017-08-20
      • 1970-01-01
      • 2021-02-21
      • 2011-11-22
      • 2016-01-26
      • 1970-01-01
      • 2020-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多