PowerShell: Time Stamp Variable

This is useful in almost any script as it enables the accurate timestamp of log entries, file names, and object events:

This will output the system time zone in words (e.g. Pacific Standard Time) or offset denotation (e.g.UTC-8) if there’s no standard for it:

$timeZoneName=[System.TimeZoneInfo]::Local.StandardName
This will output the time stamp string to be appended to a file name:
 
$timeZoneName=[System.TimeZoneInfo]::Local.StandardName
$timeStampFileName=[System.TimeZoneInfo]::ConvertTimeBySystemTimeZoneId([datetime]::UtcNow,$timeZoneName).ToString('yyyy-MM-dd_HH-mm-ss')+'_'+[regex]::replace($timeZoneName,'([A-Z])\w+\s*', '$1')
$abbreviatedZoneName=if($timeZoneName -match ' '){[regex]::replace($timeZoneName,'([A-Z])\w+\s*', '$1')}else{$timeZoneName}
$timeStampFormat="yyyy-MM-dd_HH-mm-ss_$abbreviatedZoneName"
$timeStampFileName=[System.TimeZoneInfo]::ConvertTimeBySystemTimeZoneId([datetime]::UtcNow,$timeZoneName).ToString($timeStampFormat)

write-host $timeStampFileName
 
This will output the time stamp as valid conversion object in a program:
 
$timeZoneName=[System.TimeZoneInfo]::Local.StandardName
$abbreviatedZoneName=if($timeZoneName -match ' '){[regex]::replace($timeZoneName,'([A-Z])\w+\s*', '$1')}else{$timeZoneName}
$timeStampFormat="yyyy-MM-dd HH:mm:ss $abbreviatedZoneName"
$timeStamp=[System.TimeZoneInfo]::ConvertTimeBySystemTimeZoneId([datetime]::UtcNow,$timeZoneName).ToString($timeStampFormat)

write-host $timeStamp

# Converting time stamp back to time value object
$timeValue=[datetime]::parseexact($timeStamp,$timeStampFormat,$null)

Leave a Reply

Your email address will not be published. Required fields are marked *