将自定义字符串格式转换为日期对象

问题描述:

在我的工作中,我从公司的其他脚本中设置了AD属性中的某些日期,但是我想说的是一种不友好的格式。将自定义字符串格式转换为日期对象

字符串是以下几点:201710191528 它们坚持:为yyyymmddhhmm

我想将其转换为一个Date对象,但至今没有成功。

我虽然关于使用StringBuilder的操作字符串第一个格式我可以使用GET-DATE()执行以下操作:

$strB = New-Object System.Text.StringBuilder 
$strB.Append("201710191528") 
$strB.Insert(10,":") 
$strB.Insert(8," ") 
$strB.Insert(6,"-") 
$strB.Insert(4,"-") 

而这个工作。 StringBuilder将有“2017-10-19 15:28”这是完美的Get-Date,我可以使用它将工作。

现在,我会定期处理数千个这样的字符串。 有没有更高效的东西? 我无法让它与字符串格式一起工作。

非常感谢。

[datetime]::ParseExact('201710191528','yyyyMMddHHmm',$null) 

http://winpowershell.blogspot.in/2006/09/systemdatetime-parseexact.html

+0

这是完美的。正是我在找什么。非常感谢;) – Ralms

201710191528将被转换在2017-10-19 15:28

$strDate = "201710191528" 
Get-Date([datetime]::ParseExact($strDate,'yyyyMMddHHmm',$null)) -Format "yyyy-MM-dd HH:mm" 
+0

这是多余的。 对象类型DateTime已经被转换,所以在这种情况下执行ParseExact将返回一个DateTime对象。 不需要获取日期。 尽管谢谢你的建议。 – Ralms