Powershell でよく日時を文字列にしたい時があります
ログ出力のタイムスタンプや、ファイル名にしたい等…
備忘録を残します
Get-Dateコマンドレットを使う
現在の日時を文字列にするには Get-Date
コマンドレットを使います
Get-Date コマンドレットを引数無しで実行すると、戻り値は DateTime 型になりますが、 -Format パラメータを付けると String 型になりますのでこれを利用します
PS C:\> Get-Date | Get-Member
TypeName: System.DateTime
<以下省略>
PS C:\> Get-Date -Format d | Get-Member
TypeName: System.String
<以下省略>
よく使う例
-Format は .NET のカスタム日時形式文字列になります
詳細は参考リンクに公式ドキュメントへのリンクを載せましたのでそちら参照
ログのタイムスタンプに使いたい時
PS C:\> $strDate1 = Get-Date -Format "yyyy/MM/dd HH:mm:ss"
PS C:\> $strDate1
2021/08/31 10:56:35
PS C:\>
ファイル名などで数値のみにしたい時
PS C:\> $strDate2 = Get-Date -Format "yyyyMMddHHmmss"
PS C:\> $strDate2
20210831105818
PS C:\>
前提条件
この記事は以下の環境で確認しました
PS C:\> $PSVersionTable
Name Value
---- -----
PSVersion 5.1.19041.1151
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.19041.1151
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
PS C:\>
参考リンク
![](https://learn.microsoft.com/media/logos/logo-powershell-social.png)
Get-Date (Microsoft.PowerShell.Utility) - PowerShell
Get-Date コマンドレットは、現在の日付または指定した日付を表すDateTime オブジェクトを取得します。 Get-Date では、日付と時刻を複数の .NET 形式と UNIX 形式で書式設定できます。 Get-Dateを使用して...
![](https://learn.microsoft.com/dotnet/media/dot-net-cross-platform.png)
カスタム日時形式文字列 - .NET
カスタム日時書式指定文字列を使用して、DateTime 値または DateTimeOffset 値をテキスト表現に変換したり、日付と時刻の文字列を解析したりする方法について説明します。
コメント