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
では、Date 引数を 指定して DisplayHint パラメーターを 使用して、日付のみを取得 します。
例 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: タイムスタンプを作成する
この例では、書式指定子によって、ディレクトリ名のタイムスタンプ 文字列 オブジェクトが作成されます。 タイムスタンプには、日付、時刻、および 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
します。 オブジェクトはパイプライン 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
パラメーター
-AsUTC
日付値を UTC で等価の時刻に変換します。
このパラメーターは、PowerShell 7.1 で導入されました。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Date
日付と時刻を指定します。 時刻は省略可能で、指定しない場合は 00:00:00 を返します。
システム ロケールの標準形式で日付と時刻を入力します。
たとえば、米国英語では次のようになります。
Get-Date -Date "6/25/2019 12:30:22"
returns 火曜日, June 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 2 -Day 31
2 月 31 日ではなく 3 月 3 日が表示されます。
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
. Notes セクションには、有効な 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 オブジェクトに変換します。
このメソッド(Get-Date).ToString()
は、DateTime オブジェクトを String オブジェクトに変換します。
オブジェクトのプロパティとメソッドを表示するには、パイプライン 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 桁のみの場合はスペースが前に付く | <スペース>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
フィードバック
フィードバックの送信と表示