RegEx执行多个替换

时间:2017-12-13 19:56:12

标签: regex powershell timestamp

我一直在玩正则表达式,它变得有点复杂。我正在运行Powershell 3.0并具有以下时间戳:

  

2017-07-26T00:00:39Z

我使用以下代码从时间戳中删除秒数并将其替换为00:

$($_.Timestamp -replace '^(.*)(\d\d)(.*)$','${1}00$3')

现在我的用例变得更加复杂,因为时间戳现在将采用以下格式摄取:

  

2017-08-17 00:00:34

这使事情变得复杂,因为我需要调整格式,以便KML正确地将其用作地标时间戳。所以我仍然需要剥离秒并替换为00但是还需要一个T来替换日期和时间之间的空格,并且在末尾附加一个Z来代表Zulu的时间戳。在单个正则表达式中是否可以这样?

1 个答案:

答案 0 :(得分:3)

我不认为正则表达式是必要的。您应该能够使用DateTime对象; e.g:

$date = Get-Date "2017-07-26T00:00:39Z"

您可以使用对象的ToString方法以您想要的字符串格式输出; e.g:

$date.ToString("yyyy-MM-dd hh:mm:ss")