【问题标题】:Convert Custom String format to Date object [duplicate]将自定义字符串格式转换为日期对象 [重复]
【发布时间】:2017-10-19 15:02:10
【问题描述】:

在我的工作中,我从公司其他脚本设置的 AD 属性中获取了一些日期,但我想说的是一种不友好的格式。

字符串如下:201710191528 哪个立场:YYYYMMDDHHmm

我想将其转换为日期对象,但到目前为止没有成功。

我想先使用 StringBuilder 将 String 操作为可以在 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,我可以在其中使用它。

现在,我将定期处理数千个这样的字符串。 有什么更有效的吗? 我无法让它与字符串格式一起使用。

非常感谢。

【问题讨论】:

    标签: .net powershell


    【解决方案1】:
    [datetime]::ParseExact('201710191528','yyyyMMddHHmm',$null)
    

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

    【讨论】:

    • 这是完美的。正是我想要的。非常感谢;)
    【解决方案2】:

    201710191528 将转换为2017-10-19 15:28

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

    【讨论】:

    • 这是多余的。对象类型 DateTime 已经被转换,因此在这种情况下执行 ParseExact 将返回一个 DateTime 对象。不需要获取日期。不过还是谢谢你的建议。
    猜你喜欢
    • 2013-03-07
    • 2021-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-23
    • 1970-01-01
    • 1970-01-01
    • 2011-10-25
    相关资源
    最近更新 更多