首页 > 解决方案 > 如何执行尴尬的字符串到日期的转换?

问题描述

我有一系列日期以以下格式存储为字符串:

20 年 6 月 23 日 10:05:59:557

我需要将它们转换为日期以进行比较。

我试过这个:

#$ldate2 = [datetime]::ParseExact($theDate,'MM/dd/yyyy HH:mm:ss:ffff',$null)

$ldate2 = [datetime]::ParseExact($theDate,'MM/dd/yyyy',$null)

但两者都会导致脚本出错。

标签: stringpowershelldate

解决方案


您帖子中的示例输入有一个两位数的年份 - 为此您需要yy格式说明符而不是yyyy

[datetime]::ParseExact($theDate, 'MM/dd/yy HH:mm:ss:fff', $null)

如果要将其转换为不同的格式,请像上面一样解析它,然后使用ToString()orGet-Date -Format生成目标表示:

$datetime = [datetime]::ParseExact($theDate, 'MM/dd/yy HH:mm:ss:fff', $null)

$datetime.ToString('MM/dd/yyyy')
# or 
Get-Date $datetime -Format MM/dd/yyyy

推荐阅读