简体   繁体   中英

Subtracting time in powershell

I use the following time code:

$time = [DateTime]::UtcNow | get-date -Format "yyyyMMddHH"
$m2=$time-02  # trying to subtract 2 hours

However, for times like 2021021701, subtracting 2 gives me 2021021699. How can I have the time display in the correctly?

Another way. The 2nd arg can be a datetime or a timespan. $time is a datetime.

$time = get-date 
$m2 = $time - [timespan]'2:0'
$m2

Wednesday, February 17, 2021 7:31:59 PM

To perform date calculations , operate on [datetime] ( System.DateTime ) instances and use that type's methods, such as .AddHours() ; only after that should you create the desired string representation:

# Get the current UTC time as a [datetime] instance.
$time = [DateTime]::UtcNow

# Subtract 2 hours.
$m2Time = $time.AddHours(-2)

# Create the desired string representation.
$m2 = Get-Date $m2Time -Format 'yyyyMMddHH'

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM