如何使用PowerShell获取24小时制文件时间戳并解决非英文系统显示异常
解决方案
直接使用PowerShell计算属性手动指定时间格式即可,完全规避系统区域语言、编码带来的乱码问题:
Get-ChildItem "%FullPathOfFileToGetTimestampFor%" -Force | Select-Object FullName, @{Name='CreationTime';Expression={$_.CreationTime.ToString('yyyy-MM-dd HH:mm:ss')}}, @{Name='LastAccessTime';Expression={$_.LastAccessTime.ToString('yyyy-MM-dd HH:mm:ss')}}, @{Name='LastWriteTime';Expression={$_.LastWriteTime.ToString('yyyy-MM-dd HH:mm:ss')}}, Mode, Length
说明
- 格式字符串中的
HH为固定24小时制写法,若使用小写hh会输出12小时制的时间 - 手动指定格式化规则后,输出不会调用系统默认的区域格式,彻底解决非英文系统下的时间乱码问题
- 如果你需要将结果导出为文件,可在命令末尾追加导出指令,例如下方代码会将结果导出为UTF8编码的CSV文件:
Get-ChildItem "%FullPathOfFileToGetTimestampFor%" -Force | Select-Object FullName, @{Name='CreationTime';Expression={$_.CreationTime.ToString('yyyy-MM-dd HH:mm:ss')}}, @{Name='LastAccessTime';Expression={$_.LastAccessTime.ToString('yyyy-MM-dd HH:mm:ss')}}, @{Name='LastWriteTime';Expression={$_.LastWriteTime.ToString('yyyy-MM-dd HH:mm:ss')}}, Mode, Length | Export-Csv -Path "文件时间戳导出结果.csv" -NoTypeInformation -Encoding UTF8
内容的提问来源于stack exchange,提问作者coreto98
相关产品推荐
相关产品推荐

