0

从 rest-API 以 JSON 形式返回的数据,其中数据/时间的格式为

{
  "userKey":  ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤,
  "userId":  "¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤",
  "userEmail":  "¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤",
  "userPrincipalName":  "¤¤¤¤¤¤¤¤¤¤¤¤¤¤",
  "displayName":  "¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤",
  "intuneLicensed":  true,
  "isDeleted":  true,
  "startDateInclusiveUTC":  "2017-10-16T00:00:00Z",
  "endDateExclusiveUTC":  "9999-12-31T00:00:00Z",
  "isCurrent":  true,
  "rowLastModifiedDateTimeUTC":  "2017-10-17T00:24:11.8233333Z",
  "PictureUrl":  "¤¤¤¤¤¤¤¤¤¤¤¤.dk"
}

日期/时间格式不正确,数据来自 Intune DataWareHouse API

通过 PowerShell 请求数据我的问题是它是 PowerShell Shell 错误还是 JSON 处理数据格式的方式

日期显示为
MM/DD/YY HH:MM:SS

看图片

4

2 回答 2

1

日期只是一个包含日期为 ISO-8601 的字符串(因为 JSON 没有 DateTime 类型)。解析日期,然后将其格式化为不同的字符串:

PS> [datetime]::parse("9999-12-31T00:00:00Z").Tostring('MM/dd/yy HH:mm:ss')
12-31-99 01:00:00
于 2017-10-18T15:10:19.167 回答
0

我做了一个 Convertfrom-json ,然后遍历每个 Note 属性,如果有更好的方法,请随时评论:)

$IntuneCollectionData | get-member -type NoteProperty | foreach-object {
    if ($_.value -match "(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+)|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d)|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d)")
    {

        $NewDateTime = [datetime]::parse("$($_.value)").Tostring('MM/dd/yy HH:mm:ss')

        $_.value = $NewDateTime 

    }

}
于 2017-10-18T20:11:39.770 回答