tech.guitarrapc.cóm

Technical updates

PowerShellのGet-Date -Formatで出力される標準の書式指定結果一覧

Get-Date -Formatは「カスタム書式指定」文字列を都度書かなくても標準書式で指定できます。 良くログ出力に日時を付ける際に使うので簡単に調べてみました。

書式指定方法

Get-Dateコマンドレットの日付と時刻の値のテキスト表現を指定するには、以下のようにします。

Get-Date -Format "指定書式"

#-ForamtにAliasを使うと
Get-Date -F "指定書式"

標準の書式指定は?

みんなの味方、MSDNに記載されています。

標準の書式指定一覧を見比べたい

検討するにあたり、まとめて見比べたいですね。以下のワンライナーで取得できます。

@("d","D","f","F","g","G","M","O","R","s","t","T","u","U","Y") | %{$date=Get-Date -F $_ ;"$_, $date"}

Windows 8 x64 / PowerShell 3.0環境での各標準書式の出力一覧を示しておきます。

d, 2013/01/23
D, 2013123日
f, 201312321:10
F, 201312321:10:21
g, 2013/01/23 21:10
G, 2013/01/23 21:10:21
M, 123日
O, 2013-01-23T21:10:21.2531449+09:00
R, Wed, 23 Jan 2013 21:10:21 GMT
s, 2013-01-23T21:10:21
t, 21:10
T, 21:10:21
u, 2013-01-23 21:10:21Z
U, 201312312:10:21
Y, 20131

参考程度に

私は、ちょっと、海外とのやり取りもあるので、Oでの出力をカスタムしたものを使っています。ただ、-:など不要な要素は省くと次の通りです。

(Get-Date –F O).Replace('-','').Replace('T','_').Replace(':','').Replace(’+','_GMT+')

結果は以下です。

20130123_211416.5088732_GMT+0900

人によっては、.SubString()で抜き出すのもありですね。