用常规表达式替换文本

时间:2019-08-09 15:17:38

标签: powershell cmd

我在txt文件中有此文本。

2019-08-09T15:00:00Z
2019-08-09T15:05:00Z
2019-08-09T15:06:00Z
2019-08-09T15:09:00Z
2019-08-09T15:10:00Z

但是我想删除部分文本,仅删除日期。我需要一个代码或关于powershell或cmd的示例。

15:00:00Z
15:05:00Z
15:06:00Z
15:09:00Z
15:10:00Z

谢谢!

2 个答案:

答案 0 :(得分:2)

假设您只希望使用HH:mm:ss格式,可以通过多种方式进行操作:

$DateTimes = @"
2019-08-09T15:00:00Z
2019-08-09T15:05:00Z
2019-08-09T15:06:00Z
2019-08-09T15:09:00Z
2019-08-09T15:10:00Z
"@ -split '\r?\n'

$DateTimes | ForEach-Object {
    [PSCustomObject]@{
        Method1 = (Get-Date $_ -f 'T')
        Method2 = "{0:HH:mm:ss}" -f (Get-Date $_)
        Method3 = ($_ -split 'T|Z')[1]
        Method4 = $_.split('TZ')[1]
    }
}

Method1  Method2  Method3  Method4
-------  -------  -------  -------
17:00:00 17:00:00 15:00:00 15:00:00
17:05:00 17:05:00 15:05:00 15:05:00
17:06:00 17:06:00 15:06:00 15:06:00
17:09:00 17:09:00 15:09:00 15:09:00
17:10:00 17:10:00 15:10:00 15:10:00

您可能已经注意到,Get-Date考虑到的本地时间比Z(ulu)时间早2小时。

答案 1 :(得分:1)

喜欢吗?

$firstPart,$secondPart = $string.split('T')
$firstPart
$secondPart