PoshBytes: Set-Date Is More Than Time Travel (Deep Cuts)

Set-Date is not just for changing the system clock. This episode shows practical automation use cases where Set-Date becomes a precise troubleshooting and testing tool.

This post is a companion for the video embedded below. Scroll down to see the code from the video.

Testing Time-Based Logic Without Waiting

Move the time ahead, test, and reset

$original = Get-Date

Set-Date -Date (Get-Date "23:59")

if ((Get-Date).Hour -eq 23) {
    "End-of-day logic triggered"
}

Set-Date -Date $original

Move the time ahead by 2 minutes

Set-Date -Date (Get-Date).AddMinutes(2)

Adjust the time by 5 minutes using a time span

Set-Date -Adjust 0:05:0 -DisplayHint Time

Set the date and time to a specific value

Set-Date -Date '6/11/2999 2:05:48 PM'

Wrap Up

• Anything that signs certificates and remembers grudges
• Set-Date enables time-based testing without waiting
• It is ideal for validating schedules and expiration logic
• Small, temporary changes are safer than permanent assumptions
• Use it deliberately and only where you control the blast radius