Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
220 views
in Technique[技术] by (71.8m points)

How to parse string as local date and convert it to UTC in Powershell?

I have a log that I want to parse and, among other things, convert the date/time from the current local format to UTC and convert it back to text.

I have the logic to do everything except the conversion part.

$_.Line -replace '(d{4}-d{2}-d{2}sd{2}:d{2}:d{2})',(conversion_here)
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can use the [DateTime] object for this:

([DateTime]'2015-07-03 10:58:00').Date.ToUniversalTime()

For your replacement scenario, you could use:

$pattern = '(d{4}-d{2}-d{2}sd{2}:d{2}:d{2})'
if ($line -match $pattern) {
    $utcStr = ([DateTime]$matches[1]).ToUniversalTime().ToString('yyyy-MM-dd HH:mm:ss')
    $line -replace $pattern, $utcStr
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...