Powershell - 将列格式化为日期
Powershell - Formatting column as date
我正在导入一个包含 5 个“列”的 CSV。其中之一是日期和时间。正在读取此专栏的第 3 方软件,然后没有很好地排序日期。
IE:(4/8/2022 1:24:08 PM) 将排序在 (4/13/2022 8:51:52 AM)
即使 4/13 在 4/8 之后,它也不会正确排序。我想用 powershell 在月份和日期前添加一个前导零。我确实做了一些搜索,但对我来说似乎没有任何意义,我不是一个大程序员。
感谢您的帮助!
这就是我目前正在做的事情。我正在使用 unique 删除重复行(这是我正在做的事情所必需的)。
$FinalSessions = Import-Csv -Path "C:\Windows\AdminArsenal\UserSessions.csv" | Sort-Object * -Unique
$FinalSessions | Export-Csv -Path "C:\Windows\AdminArsenal\UserSessions.csv" -NoTypeInformation
$FinalSessions
您可以使用 Get-Date 实际获取日期时间对象,然后重新格式化它。
它看起来像这样:
$FinalSessions = Import-Csv -Path "C:\Windows\AdminArsenal\UserSessions.csv"| Sort-Object * -Unique
$FinalSessions | % { $_.DateColumn = Get-Date $_.DateColumn -Format "MM/dd/yyyy hh:mm:ss tt" }
$FinalSessions | Export-Csv -Path
"C:\Windows\AdminArsenal\UserSessions.csv" -NoTypeInformation
$FinalSessions
只需将“DateColumn”替换为您的列名称
假设包含date-time字符串的列名为Date
(根据需要调整):
Import-Csv -Path C:\Windows\AdminArsenal\UserSessions.csv |
ForEach-Object { $_.Date = ([datetime] $_.Date).ToString('s') } |
Sort-Object * -Unique -OutVariable finalSessions |
Export-Csv -Path C:\Windows\AdminArsenal\UserSessions.csv -NoTypeInformation
$finalSessions
请注意,s
format specifier(采用 ISO 8601 格式)用于重新格式化 date-time 字符串,因为这会导致字符串的词法排序可靠地指示时间顺序,跨越年界;例如2022-05-05T17:52:47
我正在导入一个包含 5 个“列”的 CSV。其中之一是日期和时间。正在读取此专栏的第 3 方软件,然后没有很好地排序日期。
IE:(4/8/2022 1:24:08 PM) 将排序在 (4/13/2022 8:51:52 AM)
即使 4/13 在 4/8 之后,它也不会正确排序。我想用 powershell 在月份和日期前添加一个前导零。我确实做了一些搜索,但对我来说似乎没有任何意义,我不是一个大程序员。
感谢您的帮助!
这就是我目前正在做的事情。我正在使用 unique 删除重复行(这是我正在做的事情所必需的)。
$FinalSessions = Import-Csv -Path "C:\Windows\AdminArsenal\UserSessions.csv" | Sort-Object * -Unique
$FinalSessions | Export-Csv -Path "C:\Windows\AdminArsenal\UserSessions.csv" -NoTypeInformation
$FinalSessions
您可以使用 Get-Date 实际获取日期时间对象,然后重新格式化它。 它看起来像这样:
$FinalSessions = Import-Csv -Path "C:\Windows\AdminArsenal\UserSessions.csv"| Sort-Object * -Unique
$FinalSessions | % { $_.DateColumn = Get-Date $_.DateColumn -Format "MM/dd/yyyy hh:mm:ss tt" }
$FinalSessions | Export-Csv -Path
"C:\Windows\AdminArsenal\UserSessions.csv" -NoTypeInformation
$FinalSessions
只需将“DateColumn”替换为您的列名称
假设包含date-time字符串的列名为Date
(根据需要调整):
Import-Csv -Path C:\Windows\AdminArsenal\UserSessions.csv |
ForEach-Object { $_.Date = ([datetime] $_.Date).ToString('s') } |
Sort-Object * -Unique -OutVariable finalSessions |
Export-Csv -Path C:\Windows\AdminArsenal\UserSessions.csv -NoTypeInformation
$finalSessions
请注意,s
format specifier(采用 ISO 8601 格式)用于重新格式化 date-time 字符串,因为这会导致字符串的词法排序可靠地指示时间顺序,跨越年界;例如2022-05-05T17:52:47