Get-Date
現在の日付と時刻を取得します。
構文
Get-Date
[[-Date] <DateTime>]
[-Year <Int32>]
[-Month <Int32>]
[-Day <Int32>]
[-Hour <Int32>]
[-Minute <Int32>]
[-Second <Int32>]
[-Millisecond <Int32>]
[-DisplayHint <DisplayHintType>]
[-Format <String>]
[-AsUTC]
[<CommonParameters>]
Get-Date
[[-Date] <DateTime>]
[-Year <Int32>]
[-Month <Int32>]
[-Day <Int32>]
[-Hour <Int32>]
[-Minute <Int32>]
[-Second <Int32>]
[-Millisecond <Int32>]
[-DisplayHint <DisplayHintType>]
-UFormat <String>
[<CommonParameters>]
Get-Date
-UnixTimeSeconds <Int64>
[-Year <Int32>]
[-Month <Int32>]
[-Day <Int32>]
[-Hour <Int32>]
[-Minute <Int32>]
[-Second <Int32>]
[-Millisecond <Int32>]
[-DisplayHint <DisplayHintType>]
[-Format <String>]
[-AsUTC]
[<CommonParameters>]
Get-Date
-UnixTimeSeconds <Int64>
[-Year <Int32>]
[-Month <Int32>]
[-Day <Int32>]
[-Hour <Int32>]
[-Minute <Int32>]
[-Second <Int32>]
[-Millisecond <Int32>]
[-DisplayHint <DisplayHintType>]
-UFormat <String>
[<CommonParameters>]
説明
Get-Date
コマンドレットは、現在の日付または指定した日付を表すDateTime オブジェクトを取得します。 Get-Date
では、日付と時刻を複数の .NET 形式と UNIX 形式で書式設定できます。 Get-Date
を使用して日付または時刻の文字列を生成し、その文字列を他のコマンドレットまたはプログラムに送信できます。
Get-Date
では、オペレーティング システムの現在のカルチャ設定を使用して、出力の書式設定方法を決定します。 コンピューターの設定を表示するには、 (Get-Culture).DateTimeFormat
を使用します。
例
例 1: 現在の日付と時刻を取得する
この例では、 Get-Date
は現在のシステムの日付と時刻を表示します。 出力は、長い日付形式と長い時間形式です。
Get-Date
Tuesday, June 25, 2019 14:53:32
例 2: 現在の日付と時刻の要素を取得する
この例では、 Get-Date
を使用して日付要素または時刻要素を取得する方法を示します。 このパラメーターでは、引数 Date、 Time、または DateTime を使用します。
Get-Date -DisplayHint Date
Tuesday, June 25, 2019
Get-Date
では、 DisplayHint パラメーターと Date 引数を使用して日付のみを取得します。
例 3: .NET 書式指定子を使用して日付と時刻を取得する
この例では、.NET 書式指定子を使用して出力の形式をカスタマイズします。 出力は String オブジェクトです。
Get-Date -Format "dddd MM/dd/yyyy HH:mm K"
Tuesday 06/25/2019 16:17 -07:00
Get-Date
では、 Format パラメーターを使用して、複数の書式指定子を指定します。
この例で使用される .NET 書式指定子は、次のように定義されています。
指定子 | Definition |
---|---|
dddd |
曜日 - フル ネーム |
MM |
月の番号 |
dd |
月の日 - 2 桁 |
yyyy |
4 桁の形式の年 |
HH:mm |
24 時間形式の時刻 - 秒なし |
K |
世界時座標 (UTC) からのタイム ゾーン オフセット |
.NET 書式指定子の詳細については、「 Custom の日付と時刻の書式指定文字列を参照してください。
例 4: UFormat 指定子を使用して日付と時刻を取得する
この例では、出力の形式をカスタマイズするために、いくつかの UFormat 書式指定子を使用します。 出力は String オブジェクトです。
Get-Date -UFormat "%A %m/%d/%Y %R %Z"
Tuesday 06/25/2019 16:19 -07
Get-Date
では、 UFormat パラメーターを使用して、複数の書式指定子を指定します。
この例で使用する UFormat 書式指定子は、次のように定義されます。
指定子 | Definition |
---|---|
%A |
曜日 - フル ネーム |
%m |
月の番号 |
%d |
月の日 - 2 桁 |
%Y |
4 桁の形式の年 |
%R |
24 時間形式の時刻 - 秒なし |
%Z |
世界時座標 (UTC) からのタイム ゾーン オフセット |
有効な UFormat 書式指定子の一覧については、「 Notes 」セクションを参照してください。
例 5: 年の日付の日を取得する
この例では、プロパティを使用して年の数値の日を取得します。
グレゴリオ暦には、366 日の閏年を除き、365 日があります。 たとえば、2020 年 12 月 31 日は 366 日です。
(Get-Date -Year 2020 -Month 12 -Day 31).DayOfYear
366
Get-Date
では、 Year、 Month、および Day の 3 つのパラメーターを使用して日付を指定します。 コマンドはかっこで囲まれ、結果は DayofYear プロパティによって評価されます。
例 6: 夏時間に合わせて日付が調整されているかどうかを確認する
この例では、ブール値メソッドを使用して、夏時間で日付が調整されているかどうかを確認します。
$DST = Get-Date
$DST.IsDaylightSavingTime()
True
変数 $DST
、 Get-Date
の結果を格納します。 $DST
では、 IsDaylightSavingTime メソッドを使用して、夏時間に合わせて日付が調整されているかどうかをテストします。
例 7: 現在の時刻を UTC 時刻に変換する
この例では、現在の時刻は UTC 時刻に変換されます。 時刻の変換には、システムのロケールの UTC オフセットが使用されます。 Notes セクションのテーブルには、有効なUFormat書式指定子が一覧表示されます。
Get-Date -UFormat "%A %B/%d/%Y %T %Z"
$Time = Get-Date
$Time.ToUniversalTime()
Wednesday June/26/2019 10:45:26 -07
Wednesday, June 26, 2019 17:45:26
Get-Date
は、 UFormat パラメーターと書式指定子を使用して、現在のシステムの日付と時刻を表示します。 書式指定子 %Z は、 -07 の UTC オフセットを表します。
$Time
変数には、現在のシステムの日付と時刻が格納されます。 $Time
では、 ToUniversalTime()
メソッドを使用して、コンピューターの UTC オフセットに基づいて時刻を変換します。
例 8: タイムスタンプを作成する
この例では、書式指定子によって、ディレクトリ名のタイムスタンプ String オブジェクトが作成されます。 タイムスタンプには、日付、時刻、および UTC オフセットが含まれます。
$timestamp = Get-Date -Format o | ForEach-Object { $_ -replace ":", "." }
New-Item -Path C:\Test\$timestamp -Type Directory
Directory: C:\Test
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 6/27/2019 07:59 2019-06-27T07.59.24.4603750-07.00
$timestamp
変数には、Get-Date
コマンドの結果が格納されます。 Get-Date
では、 Format パラメーターと小文字の o
の書式指定子を使用して、タイムスタンプ String オブジェクトを作成します。 オブジェクトは、パイプラインから ForEach-Object
に送信されます。 ScriptBlock には、現在のパイプライン オブジェクトを表す$_
変数が含まれています。 タイムスタンプ文字列は、ピリオドに置き換えられるコロンで区切られます。
New-Item
では、 Path パラメーターを使用して、新しいディレクトリの場所を指定します。 パスには、ディレクトリ名として $timestamp
変数が含まれています。 Type パラメーターは、ディレクトリが作成されることを指定します。
例 9: Unix タイムスタンプを変換する
この例では、Unix 時間 (1970-01-01 0:00:00 以降の秒数で表されます) を DateTime に変換します。
Get-Date -UnixTimeSeconds 1577836800
Wednesday, January 01, 2020 12:00:00 AM
例 10: UTC として解釈される日付値を返す
この例では、日付値を UTC に相当するものとして解釈する方法を示します。 この例では、このマシンは Pacific Standard Time に設定されています。 既定では、 Get-Date
はそのタイムゾーンの値を返します。 AsUTC パラメーターを使用して、値を UTC の等価時刻に変換します。
PS> Get-TimeZone
Id : Pacific Standard Time
DisplayName : (UTC-08:00) Pacific Time (US & Canada)
StandardName : Pacific Standard Time
DaylightName : Pacific Daylight Time
BaseUtcOffset : -08:00:00
SupportsDaylightSavingTime : True
PS> (Get-Date -Date "2020-01-01T00:00:00").Kind
Unspecified
PS> Get-Date -Date "2020-01-01T00:00:00"
Wednesday, January 1, 2020 12:00:00 AM
PS> (Get-Date -Date "2020-01-01T00:00:00" -AsUTC).Kind
Utc
PS> Get-Date -Date "2020-01-01T00:00:00" -AsUTC
Wednesday, January 1, 2020 8:00:00 AM
例 11: インバリアント カルチャを表示する
ToString()
は、現在のカルチャ設定を使用して、DateTime オブジェクトを String に変換します。
ただし、PowerShell 式の解釈では、常にインバリアント カルチャ設定が使用されます。
たとえば、 en-US
カルチャが有効なシステムでは、 ToString()
メソッドは en-US
カルチャ設定を使用して日付を書式設定します。
# Get date using current culture en-US
(Get-Date 2024-03-19).ToString()
3/19/2024 12:00:00 AM
# Get date using invariant culture
"$(Get-Date 2024-03-19)"
03/19/2024 00:00:00
パラメーター
-AsUTC
日付値を UTC で等価の時刻に変換します。
このパラメーターは、PowerShell 7.1 で導入されました。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Date
日付と時刻を指定します。 時刻は省略可能で、指定しない場合は 00:00:00 を返します。 現在選択されているロケールの標準形式で日付と時刻を入力します。 現在のロケールは、 Set-Culture
コマンドレットを使用して変更できます。
たとえば、米国英語では次のようになります。
Get-Date -Date "6/25/2019 12:30:22"
returns Tuesday, June 25, 2019 12:30:22
型: | DateTime |
Aliases: | LastWriteTime |
配置: | 0 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Day
表示されている月の日にちを指定します。 1 ~ 31 の値を入力します。
指定した値が 1 か月の日数より大きい場合、PowerShell は月に日数を追加します。 たとえば、Get-Date -Month 4 -Day 31
では、April 31 ではなく、May 1 が表示されます。
型: | Int32 |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-DisplayHint
表示する日付と時刻の要素を決定します。
許容される値は次のとおりです。
- 日付: 日付のみを表示します
- 時間: 時刻のみを表示します
- DateTime: 日付と時刻を表示します
型: | DisplayHintType |
指定可能な値: | Date, Time, DateTime |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Format
書式指定子で示される Microsoft .NET Framework 形式で日付と時刻を表示します。 Format パラメーターは、String オブジェクトを出力します。
使用可能な .NET 書式指定子の一覧については、「 Custom の日付と時刻の書式指定文字列を参照してください。
Format パラメーターを使用する場合、Get-Date
は日付を表示するために必要なDateTime オブジェクトのプロパティのみを取得します。 その結果、 DateTime オブジェクトのプロパティとメソッドの一部が使用できない場合があります。
PowerShell 5.0 以降では、 Format パラメーターの値として、次の追加形式を使用できます。
FileDate。 現在の日付をローカル時刻でファイルまたはパスに対応した表現。 形式は
yyyyMMdd
です (4 桁の年、2 桁の月、2 桁の日を使用して大文字と小文字が区別されます)。 例: 20190627。FileDateUniversal。 現在の日付を世界時 (UTC) でファイルまたはパスに対応した表現。 形式は
yyyyMMddZ
です (4 桁の年、2 桁の月、2 桁の日、UTC インジケーターとして文字Z
を使用して、大文字と小文字が区別されます)。 例: 20190627Z。FileDateTime。 現在の日付と時刻を 24 時間形式でローカル時刻でファイルまたはパスに対応した表現。 形式は
yyyyMMddTHHmmssffff
です (大文字と小文字が区別されます。4 桁の年、2 桁の月、2 桁の日、時刻区切り記号としてT
文字、2 桁の時間、2 桁の分、2 桁の秒、4 桁のミリ秒を使用)。 例: 20190627T0840107271。FileDateTimeUniversal。 現在の日付と時刻を 24 時間形式で世界時 (UTC) でファイルまたはパスに対応した表現。 形式は
yyyyMMddTHHmmssffffZ
(4 桁の年、2 桁の月、2 桁の日、時刻区切り記号としてT
文字、2 桁の時間、2 桁の分、2 桁の秒、4 桁のミリ秒、および UTC インジケーターとして文字Z
を使用して大文字と小文字が区別されます)。 例: 20190627T1540500718Z。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Hour
表示する時を指定します。 0 ~ 23 の値を入力します。
型: | Int32 |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Millisecond
日付のミリ秒を指定します。 0 ~ 999 の値を入力します。
このパラメーターは PowerShell 3.0 で導入されました。
型: | Int32 |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Minute
表示する分を指定します。 0 ~ 59 の値を入力します。
型: | Int32 |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Month
表示する月を指定します。 1 ~ 12 の値を入力します。
型: | Int32 |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Second
表示する秒を指定します。 0 ~ 59 の値を入力します。
型: | Int32 |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-UFormat
UNIX 形式で日付と時刻を表示します。 UFormat パラメーターは文字列オブジェクトを出力します。
UFormat指定子の前には、%m
、%d
、%Y
など、パーセント記号 (%
) が付きます。 Notes セクションには、有効な UFormat 指定子のテーブルが含まれています。
UFormat パラメーターを使用する場合、Get-Date
は日付を表示するために必要なDateTime オブジェクトのプロパティのみを取得します。 その結果、 DateTime オブジェクトのプロパティとメソッドの一部が使用できない場合があります。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-UnixTimeSeconds
1970 年 1 月 1 日 0:00:00 以降の秒数で表される日付と時刻。
このパラメーターは、PowerShell 7.1 で導入されました。
型: | Int64 |
Aliases: | UnixTime |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Year
表示する年を指定します。 1 ~ 9999 の値を入力します。
型: | Int32 |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
DateTime オブジェクトをこのコマンドレットにパイプできます。
出力
既定では、このコマンドレットは DateTime オブジェクトを返します。
DateTimeオブジェクトが、文字列入力を必要とするAdd-Content
などのコマンドレットにパイプラインに送信されると、PowerShell はオブジェクトを String オブジェクトに変換します。
ToString()
は、現在のカルチャ設定を使用して、DateTime オブジェクトを String に変換します。
ただし、PowerShell 式の解釈では、常にインバリアント カルチャ設定が使用されます。 インバリアント カルチャの違いについては、 Example 11 を参照してください。
オブジェクトのプロパティとメソッドを表示するには、パイプラインの下にオブジェクトを送信して Get-Member
します。
たとえば、Get-Date | Get-Member
のようにします。
Format または UFormat パラメーターを使用すると、このコマンドレットは String オブジェクトを返します。
メモ
DateTime オブジェクトの出力の既定の形式は、現在選択されているロケールの長い日付形式と長い形式です。
有効な UFormat 指定子 を次の表に示します。
重要
UFormat 指定子は、新しいバージョンの PowerShell で変更または追加されます。 たとえば、 %F
は PowerShell 6.2 で追加されたため、Windows PowerShell 5.1 以前では使用できません。 複数のバージョンの PowerShell で実行するように設計されたスクリプトで UFormat 指定子を使用する場合は、この点に注意してください。
書式指定子 | 意味 | 例 |
---|---|---|
%A |
曜日 - フル ネーム | 月曜日 |
%a |
曜日 - 省略名 | Mon |
%B |
月名 - 完全 | 1 月 |
%b |
月名 - 省略形 | 1 月 |
%C |
センチュリー | 2019 年 20 |
%c |
日付と時刻 - 省略形 | 2019年6月27日(木) 08:44:18 |
%D |
mm/dd/yy 形式の日付 | 06/27/19 |
%d |
月の日 - 2 桁 | 05 |
%e |
月の日 - 1 桁のみの場合はスペースが前に付く | <space>5 |
%F |
%Y-%m-%d と等しい YYYY-mm-dd 形式の日付 (ISO 8601 日付形式) | 2019-06-27 |
%G |
ISO 週の日付年 (週の木曜日を含む年) | |
%g |
'G' と同じ - 2 桁 | |
%H |
24 時間形式の時間 | 17 |
%h |
'b' と同じ | |
%I |
12 時間形式の時間 | 05 |
%j |
年の日 | 1-366 |
%k |
'H' と同じ | |
%l |
'I' と同じです (大文字の I) | 05 |
%M |
分間 | 35 |
%m |
月の番号 | 06 |
%n |
改行文字 | |
%p |
AM または PM | |
%R |
24 時間形式の時刻 (秒なし) | 17:45 |
%r |
12 時間形式の時刻 | 09:15:36 AM |
%S |
秒 | 05 |
%s |
1970 年 1 月 1 日以降の秒数 00:00:00 (UTC) | 1150451174 |
%t |
水平タブ文字 | |
%T |
24 時間形式の時刻 | 17:45:52 |
%U |
'W' と同じ | |
%u |
曜日の数値 (1 ~ 7) (PowerShell 7.2 で変更) | 月曜日 = 1、日曜日 = 7 |
%V |
年の週 | 01-53 |
%w |
曜日の数値 (0 から 6) | 日曜日 = 0、土曜日 = 6 |
%W |
年の週 | 00-52 |
%X |
'T' と同じ | |
%x |
ロケールの標準形式の日付 | 06/27/19 英語-米国 |
%Y |
4 桁の形式の年 | 2019 |
%y |
2 桁の形式の年 | 19 |
%Z |
世界時座標 (UTC) からのタイム ゾーン オフセット | -07 |
Note
Windows PowerShell の動作に関する問題を修正するために、 -UFormat %s
の動作が変更されました。
- 戻り値は UTC 時刻に基づきます。
- 値は秒数の値です (小数部なし)。
関連リンク
PowerShell