我需要以以下格式获取今天和昨天的午夜日期:
08/05/2018 00:00
我似乎能得到的最好的是:
get-date -Uformat "%D %R" -Hour 0 -Minute 00
08/05/18 00:00
我试图在午夜去昨天时惨败。
(Get-Date -UFormat "%s" -Hour 0 -Minute 00 -Second 00).AddDays(-1)
方法调用失败,因为[System.String]不包含名为AddDays的方法。 在第1行:char:1 +(获取日期-UFormat“%s”-小时0-分钟00-秒00).AddDays(-1) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~ + CategoryInfo:InvalidOperation:(:) [],RuntimeException + FullyQualifiedErrorId:MethodNotFound
答案 0 :(得分:2)
要获取午夜的日期(时间),您可以使用:
(Get-Date).Date
或
[datetime]::Today
如果您当前的日期格式具有不同的分隔符(如此处的情况),那么根据您的要求对其进行格式化可能会很棘手。
> (get-date).Date.ToString('MM/dd/yyyy HH:mm')
08-05-2018 00:00
.ToString()
方法将覆盖分隔符;要使用斜杠文字,您必须使用反斜杠对其进行转义:
> (get-date).Date.ToString('MM\/dd\/yyyy HH:mm')
08/05/2018 00:00
或使用:
> (get-date).Date.ToString('MM/dd/yyyy HH:mm', [cultureinfo]::InvariantCulture)
08/05/2018 00:00
答案 1 :(得分:1)
今天使用[DateTime]::Today
并用ToString()
格式化
[Datetime]::Today.ToString("dd/MM/yyyy HH:mm")
昨天,只需添加AddDays(-1)
[Datetime]::Today.AddDays(-1).ToString("dd/MM/yyyy HH:mm")
答案 2 :(得分:0)
(Get-Date).ToString("dd/MM/yyyy 00:00")
(Get-Date).AddDays(-1).ToString("dd/MM/yyyy 00:00")
您必须在仍为日期(而不是看起来像日期的字符串)中执行AddDays
到 date 。
05/08/2018 00:00
04/08/2018 00:00
dd/MM/yyyy
变成MM/dd/yyyy
答案 3 :(得分:0)
使用-UFormat
选项可以使您处在正确的轨道上:
Get-Date -Hour 0 -Minute 00 -UFormat "%m/%d/%Y %H:%M"
这将产生以下输出:
08/05/2018 00:00
您看到的错误是由于您在字符串上调用AddDays
方法。要操作日期,您可以执行以下操作:
(Get-Date -Hour 0 -Minute 00).AddDays(-1) | Get-Date -UFormat "%m/%d/%Y %H:%M"
这将产生所需的输出。
答案 4 :(得分:0)
(Get-Date).AddDays(-1)|Get-Date -format "yyyyMMdd"