如何使用get-date声明一个数组?

时间:2017-09-25 14:39:33

标签: powershell

我想在powershell中声明一组日期,它不是一个连续的范围,所以我不能用循环做任何聪明的事情。

我已尝试使用数组表示法调用get-date,如下所示,但这会返回错误

iamRoleStatements:
  - Effect: Allow
    Action:
      - ec2:DescribeInstanceStatus
    Resource: <insert your resource here>

如何在powershell中声明日期数组?

3 个答案:

答案 0 :(得分:3)

将每个Get-Date包装在括号中:

$logDateList = @((Get-Date -Year 2017 -Month 08 -Day 22 -Hour 13),(Get-Date -Year 2017 -Month 08 -Day 20 -Hour 22))

答案 1 :(得分:3)

我认为你仍然应该使用一个循环来节省一些代码重复:

$logDateList = '20 Aug 2017 22:00','22 Aug 2017 22:13' | ForEach-Object { Get-Date $_ }

为避免地区性问题,使用文本数月的示例,但您可以以您喜欢的任何方式格式化您的日期。

答案 2 :(得分:2)

您可以将字符串转换为日期时间,如下所示:

[datetime]'2017-08-22 13:00'

制作你的数组

$logDateList = [datetime]'2017-08-22 13:00', [datetime]'2017-08-20 22:00'

如果您正在执行此操作,请将其设置为一个字符串日期数组,并转换为日期时间数组

[datetime[]] $logDateList = @(
    '2017-08-22 13:00', 
    '2017-08-20 22:00'
)

我把它们放在ISO标准yyyy-MM-dd hh:mm中,以避免美国/英国解析混淆。