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 要素を取得する方法を示します。 パラメーターは、引数 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 書式指定子は、次のように定義されます。
指定子 | 定義 |
---|---|
dddd |
曜日 - フル ネーム |
MM |
月の番号 |
dd |
月の日 - 2 桁の数字 |
yyyy |
4 桁の形式の年 |
HH:mm |
24 時間形式の時刻 - 秒なし |
K |
世界時座標 (UTC) からのタイム ゾーン オフセット |
.NET 書式指定子の詳細については、「 カスタム日付と時刻の書式指定文字列」を参照してください。
例 4: UFormat 指定子を使用して日付と時刻を取得する
この例では、出力の形式をカスタマイズするために、いくつかの UFormat 書式指定子を使用します。 出力は String オブジェクトです。
Get-Date -UFormat "%A %m/%d/%Y %R %Z"
Tuesday 06/25/2019 16:19 -07
Get-Date
では、 UFormat パラメーターを使用して、いくつかの書式指定子を指定します。
この例で使用される UFormat 書式指定子は、次のように定義されます。
指定子 | 定義 |
---|---|
%A |
曜日 - フル ネーム |
%m |
月の番号 |
%d |
月の日 - 2 桁の数字 |
%Y |
4 桁の形式の年 |
%R |
24 時間形式の時刻 - 秒なし |
%Z |
世界時座標 (UTC) からのタイム ゾーン オフセット |
有効な UFormat 書式指定子の一覧については、「 ノート 」セクションを参照してください。
例 5: 年の日付の日を取得する
この例では、 プロパティを使用して年の数値の日を取得します。
グレゴリオ暦のカレンダーは、366 日の閏年を除き、365 日です。 たとえば、2020 年 12 月 31 日は 366 日です。
(Get-Date -Year 2020 -Month 12 -Day 31).DayOfYear
366
Get-Date
では、 年、 月、日の 3 つのパラメーターを使用して日付を指定 します。 コマンドはかっこで囲まれ、 DayofYear プロパティによって結果が評価されます。
例 6: 夏時間に合わせて日付が調整されているかどうかを確認する
この例では、ブール値メソッドを使用して、夏時間によって日付が調整されているかどうかを確認します。
$DST = Get-Date
$DST.IsDaylightSavingTime()
True
変数は、 $DST
の結果 Get-Date
を格納します。 $DST
では、IsDaylightSavingTime メソッドを使用して、夏時間に合わせて日付が調整されているかどうかをテストします。
例 7: 現在の時刻を UTC 時刻に変換する
この例では、現在の時刻は UTC 時刻に変換されます。 システムのロケールの UTC オフセットは、時刻の変換に使用されます。 [ メモ ] セクションの表に、有効な 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: タイムスタンプをCreateする
この例では、書式指定子によって、ディレクトリ名のタイムスタンプ 文字列 オブジェクトが作成されます。 タイムスタンプには、日付、時刻、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 と等価として解釈する方法を示します。 たとえば、このマシンは 太平洋標準時に設定されています。 既定では、 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 で導入されました。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Date
日付と時刻を指定します。 Time は省略可能で、指定しない場合は 00:00:00 を返します。 現在選択されているロケールの標準形式で日付と時刻を入力します。 コマンドレットを使用して、現在のロケールを Set-Culture
変更できます。
たとえば、米国英語では次のようになります。
Get-Date -Date "6/25/2019 12:30:22"
returns 火曜日, 6 月 25, 2019 12:30:22
Type: | DateTime |
Aliases: | LastWriteTime |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Day
表示されている月の日にちを指定します。 1 ~ 31 の値を入力します。
指定した値が 1 か月の日数より大きい場合、PowerShell は月に日数を追加します。 たとえば、 Get-Date -Month 4 -Day 31
4 月 31 日ではなく、5 月 1 日が表示されます。
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DisplayHint
表示する日付と時刻の要素を決定します。
許容される値は次のとおりです。
- 日付: 日付のみを表示します
- 時間: 時刻のみを表示します
- DateTime: 日付と時刻を表示します
Type: | DisplayHintType |
Accepted values: | Date, Time, DateTime |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Format
書式指定子で示される Microsoft .NET Framework 形式で日付と時刻を表示します。 Format パラメーターは、String オブジェクトを出力します。
使用可能な .NET 書式指定子の一覧については、「 カスタム日付と時刻の書式指定文字列」を参照してください。
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。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Hour
表示する時を指定します。 0 ~ 23 の値を入力します。
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Millisecond
日付のミリ秒を指定します。 0 ~ 999 の値を入力します。
このパラメーターは、PowerShell 3.0 で導入されました。
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Minute
表示する分を指定します。 0 ~ 59 の値を入力します。
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Month
表示する月を指定します。 1 ~ 12 の値を入力します。
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Second
表示する秒を指定します。 0 ~ 59 の値を入力します。
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UFormat
UNIX 形式で日付と時刻を表示します。 UFormat パラメーターは、文字列オブジェクトを出力します。
UFormat 指定子の前には、パーセント記号 (%
、 など%m
%d
) が付いています%Y
。 [ メモ ] セクションには、有効な UFormat 指定子のテーブルが含まれています。
UFormat パラメーターを使用する場合は、Get-Date
日付を表示するために必要な DateTime オブジェクトのプロパティのみを取得します。 その結果、DateTime オブジェクトの一部のプロパティとメソッドを利用できなくなる場合があります。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UnixTimeSeconds
1970 年 1 月 1 日 0:00:00 以降の秒数で表される日付と時刻。
このパラメーターは、PowerShell 7.1 で導入されました。
Type: | Int64 |
Aliases: | UnixTime |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Year
表示する年を指定します。 1 ~ 9999 の値を入力します。
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
入力
DateTime オブジェクトをこのコマンドレットにパイプできます。
出力
既定では、このコマンドレットは DateTime オブジェクトを返します。
DateTime オブジェクトが、文字列入力を必要とする コマンドレットなどにAdd-Content
パイプラインに送信されると、PowerShell は オブジェクトを String オブジェクトに変換します。
は ToString()
、現在のカルチャ設定を使用して DateTime オブジェクトを String に変換します。
ただし、PowerShell 式の解釈では常にインバリアント カルチャ設定が使用されます。 インバリアント カルチャがどのように異なるかを確認するには、「 例 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 |
月名 - 完全 | January |
%b |
月名 - 省略形 | 1 月 |
%C |
世紀 | 2019 年の場合は 20 |
%c |
日付と時刻 - 省略形 | 木 6 月 27 08:44:18 2019 |
%D |
日付 (mm/dd/yy 形式) | 06/27/19 |
%d |
月の日 - 2 桁 | 05 |
%e |
月の日 - 1 桁のみの場合はスペースが前に付きます | <スペース>5 |
%F |
%YYYY-mm-dd 形式の日付。%Y-%m-%d (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 |
注意
の動作-UFormat %s
が変更され、Windows PowerShellでの動作に関する問題が修正されました。
- 戻り値は UTC 時刻に基づいています。
- 値は、秒数の整数の値です (小数部なし)。