I’m wrapping up another PowerShell class right now in Fort
Wayne, IN. At the end of my classes, I
like to do a “Project Day”. I invite my
class to do a project for themselves in our test environment so I can coach
them. In between coaching, I’m working
on prepping my content for the PowerShell Conference in Asia next week. When I work on my projects, I keep the content on the big
screen to get my class to ask questions.
While working on the project in SAPIEN PowerShell
Studio, I needed a way to format the date-time stamps on the internal log that
I like to use when I’m coding a large project.
I noticed that what I was using was not sorting the way that I wanted it
to based on the date-time information. To fix this, I changed formats to YYYY-MM-DD HH:MM:SS.
I took a look at the GetDateTimeFormats method of the
System.DateTime object to see if I could generate this format easily.
PS C:\> (Get-Date).GetDateTimeFormats()
10/7/2016
10/7/16
10/07/16
10/07/2016
16/10/07
This produced a huge list of possibilities. In order to use one, you need to specify the
index number.
PS C:\> (Get-Date).GetDateTimeFormats()[10]
7 October, 2016
Well, there are 132 possible formats and I did not want to
count so here is a simple function to help you decide which one you want to
use.
Function Get-DateTimeFormat
{
$Formats
= $Date.GetDateTimeFormats()
$Index
= 0
ForEach
($F in
$Formats)
{
$Obj
= New-Object
-TypeName PSObject
-Property @{
Index =
$Index
Format =
$Date.GetDateTimeFormats()[$Index]
}
Write-Output
$Obj |
Select-Object -Property
Index,
Format
$Index++
}
}
Get-DateTimeFormat
Index Format
----- ------
0 10/7/2016
1 10/7/16
2 10/07/16
3 10/07/2016
4 16/10/07
5 2016-10-07
6 07-Oct-16
7 Friday, October
7, 2016
8 October 7,
2016
9 Friday, 7
October, 2016
10 7 October,
2016
Simple, but effective. Mine ended up being number 93. Here is a screen shot of where I used
it.
Comments