繁体   English   中英

如何将字符串解析为本地日期并将其转换为Powershell中的UTC?

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

我有一个要解析的日志,除其他外,将日期/时间从当前的本地格式转换为UTC并将其转换回文本。

除了转换部分,我有逻辑做所有事情。

$_.Line -replace '(\d{4}\-\d{2}\-\d{2}\s\d{2}:\d{2}:\d{2})',(conversion_here)

您可以为此使用[DateTime]对象:

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

对于替换方案,可以使用:

$pattern = '(\d{4}\-\d{2}\-\d{2}\s\d{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
}

regex类的Replace()方法与回调函数一起使用:

$fmt = 'yyyy-MM-dd HH:mm:ss'
$callback = {
  (Get-Date $args[0].Groups[1].Value).ToUniversalTime().ToString($fmt)
}
$re = [regex]'(\d{4}\-\d{2}\-\d{2}\s\d{2}:\d{2}:\d{2})'

...
$re.Replace($_.Line, $callback)
...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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