Forum Discussion
Andre Radtke
Jan 26, 2022Brass Contributor
Convert a text string to a correct date time format
Hello folks,
I have maybe a simple question for the experienced people around here π . I have a runbook in azure that is getting the field "CreatedDateTime" of a unified group (Teams Team). The format of this field ist like the following "2020-08-06T06:03:19Z". This is not recognized as a valid DateTime format by the cmdlet:
$DateTime=[Datetime]::ParseExact($DateTime, 'MM/dd/yyyy', $null)
Can anyone point me to a solution how to get the string "2020-08-06T06:03:19Z" into a string like "2020-08-06" or "06-08-2020". Every hint is appreciated.
Thank you all π
- sorry, I left the " | Get-Member " to show you that the type returned is a Date type. remove that to integrate into your own script
- Jonathan_AllenBrass Contributor
Look like Get-Date will return a string that can be converted to a date:
[datetime](get-date('2020-08-06T06:03:19Z')) | get-member -MemberType Properties
[Edit] Actually just noticed the flaw with your script sample - you need to provide the date format that the incoming string is in so that ParseExact is receiving
$DateTime=[Datetime]::ParseExact($str, 'yyyy-MM-ddTHH:mm:ssZ', $null)
- Andre RadtkeBrass Contributor
thank you for your reply, but it does not help me at the moment because all it gives me back is the following:
PS C:\WINDOWS\system32> [datetime](get-date('2020-08-06T06:03:19Z')) | get-member -MemberType Properties
TypeName: System.DateTimeName MemberType Definition
---- ---------- ----------
Date Property datetime Date {get;}
Day Property int Day {get;}
DayOfWeek Property System.DayOfWeek DayOfWeek {get;}
DayOfYear Property int DayOfYear {get;}
Hour Property int Hour {get;}
Kind Property System.DateTimeKind Kind {get;}
Millisecond Property int Millisecond {get;}
Minute Property int Minute {get;}
Month Property int Month {get;}
Second Property int Second {get;}
Ticks Property long Ticks {get;}
TimeOfDay Property timespan TimeOfDay {get;}
Year Property int Year {get;}
DateTime ScriptProperty System.Object DateTime {get=if ((& { Set-StrictMode -Ver...What I needed was a correct format as described. I solved it my way by cutting the last characters with this:
$CreatedDate.Remove(10,10)
itΒ΄s not smart but for now it will be enough for me π
- Jonathan_AllenBrass Contributorsorry, I left the " | Get-Member " to show you that the type returned is a Date type. remove that to integrate into your own script
- Andre RadtkeBrass ContributorFor your information, I am getting the CreatedDateTime format from the MS Graph as you can read here: https://docs.microsoft.com/de-de/graph/api/group-list?view=graph-rest-1.0&tabs=http
I am wondering why Microsoft is formatting this field in this wierd format that I can not use for further actions..... seriously microsoft?!? π€·β:male_sign: