現在の日付と時刻を取得します。

構文

Get-Date [-Format <string>] [[-Date] <DateTime>] [-Day <int>] [-DisplayHint {<Date> | <Time> | <DateTime>}] [-Hour <int>] [-Minute <int>] [-Month <int>] [-Second <int>] [-Year <int>] [<CommonParameters>]

Get-Date [-UFormat <string>] [[-Date] <DateTime>] [-Day <int>] [-DisplayHint {<Date> | <Time> | <DateTime>}] [-Hour <int>] [-Minute <int>] [-Month <int>] [-Second <int>] [-Year <int>] [<CommonParameters>]

説明

Get-Date コマンドレットは、現在の日付または指定した日付を表す DateTime オブジェクトを取得します。このコマンドを使用すると、日付と時刻をいくつかの Windows 形式または UNIX 形式で書式設定できます。Get-Date を使用すると、日時を表す文字列を生成し、それを他のコマンドレットやプログラムに送信できます。

パラメーター

-Date <DateTime>

日付と時刻を指定します。既定では、Get-Date は現在のシステム日付および時刻を取得します。

yyyy/MM/dd (日本語 (日本)) または MM/dd/yyyy (英語 (米国)) のように、システム ロケールの標準形式で日付を入力します。

必須

false

位置

1

既定値

パイプライン入力を許可する

true (ByValue, ByPropertyName)

ワイルドカード文字を許可する

false

-Day <int>

表示する日を指定します。1 ~ 31 の値を入力します。現在の日の代わりにこの値が表示されます。

月の日数を超えた値を指定した場合は、超えた日数が次の月に繰り越された結果が表示されます。たとえば、「get-date -month 2 -day 31」と入力すると、"2 月 31 日" ではなく "3 月 3 日" が表示されます。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-DisplayHint <DisplayHintType>

表示する日付と時刻の要素を決定します。

有効な値は次のとおりです。

-- Date: 日付のみを表示します。

-- Time: 時刻のみを表示します。

-- DateTime: 日付と時刻を表示します。

DateTime が既定です。

このパラメーターは Get-Date が取得する DateTime オブジェクトには影響しません。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Format <string>

書式指定子が示している Microsoft .NET Framework 形式で日付と時刻を表示します。書式指定子を入力します。使用できる書式指定子の一覧については、MSDN (Microsoft Developer Network) ライブラリの「DateTimeFormatInfo クラス」(http://msdn.microsoft.com/ja-jp/library/system.globalization.datetimeformatinfo(VS.85).aspx) を参照してください。

Format パラメーターを指定した場合には、指定された形式で日付を表示する必要がある DateTime オブジェクトのプロパティのみが取得されます。その結果、DateTime オブジェクトの一部のプロパティおよびメソッドが使用できなくなる場合があります。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Hour <int>

表示する時間を指定します。1 ~ 23 の値を入力します。現在の時間の代わりにこの値が表示されます。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Minute <int>

表示する分を指定します。1 ~ 59 の値を入力します。現在の分の代わりにこの値が表示されます。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Month <int>

表示する月を指定します。1 ~ 12 の値を入力します。現在の月の代わりにこの値が表示されます。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Second <int>

表示する秒を指定します。1 ~ 59 の値を入力します。現在の秒の代わりにこの値が表示されます。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-UFormat <string>

日付と時刻を UNIX 形式で表示します。書式指定子の一覧については、「注」セクションを参照してください。

UFormat パラメーターを指定した場合には、指定された形式で日付を表示する必要がある DateTime オブジェクトのプロパティのみが取得されます。その結果、DateTime オブジェクトの一部のプロパティおよびメソッドが使用できなくなる場合があります。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Year <int>

表示する年を指定します。1 ~ 9999 の値を入力します。現在の年の代わりにこの値が表示されます。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

<CommonParameters>

このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。Ô”¼š¤Ë¤Ä¤¤¤Æ¤Ï¡¢次を参照してください: about_Commonparameters.

入力と出力

入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。

入力

なし

パイプを使用してこのコマンドレットに入力を渡すことはできません。

出力

System.DateTime または System.String

Format パラメーターまたは UFormat パラメーターを使用した場合、出力オブジェクトは System.String になります。

既定では、日付および時刻はシステム ロケールの日時を長形式で表現したものになります。

文字列の入力を必要とする Add-Content などのコマンドレットにパイプ機能を使用して日付を送る場合、Windows PowerShell は DateTime オブジェクトを文字列に変換してからファイルに追加します。既定の ToString() 形式では、日付が短形式に、時刻が長形式になります。別の形式を指定する場合は、Get-Date の Format パラメーターまたは UFormat パラメーターを使用してください。

Uformat の値:

UFormat パラメーターの有効な値は次のとおりです。コマンドの形式は次のとおりです。

get-date -uformat %<value>

次に例を示します。

get-date -uformat %d

日時:

日時 - 完全

(既定) (2006 年 6 月 16 日金曜日 10:31:27 AM)

c 日時 - 短縮名 (6 月 16 日金 10:31:27 2006)

日付:

D mm/dd/yy 形式の日付 (06/14/06)

x ロケールの標準形式の日付 (英語 (米国) の場合は 09/12/07)

年:

C 世紀 (2006 年の場合は 20)

Y 4 桁の年 (2006)

y 2 桁形式の年 (06)

G Y と同じ

g y と同じ

月:

b 月の名前 - 短縮名 (Jan)

B 月の名前 - 完全名 (January)

h b と同じ

m 月の番号 (06)

週:

W 1 年の何番目の週か (00-52)

V 1 年の何番目の週か (01-53)

U W と同じ

日:

a 曜日 - 短縮名 (Mon)

A 曜日 - 完全名 (Monday)

u 曜日 - 番号 (月曜日 = 1)

d 日 - 2 桁 (05)

e 日 - 桁の前にスペース (5)

j 1 年の何番目の日か - (1-366)

w u と同じ

時刻:

p AM または PM

r 12 時間制の時刻 (09:15:36 AM)

R 24 時間制の時刻。秒の表示なし (17:45)

T 24 時間制の時刻 (17:45:52)

X T と同じ

Z タイム ゾーンと協定世界時刻 (UTC) の時間差 (-07)

時間:

H 24 時間制の時間 (17)

I 12 時間制の時間 (05)

k H と同じ

l I と同じ (大文字の I = 小文字の L)

分と秒:

M 分 (35)

S 秒 (05)

s January 1, 1970 00:00:00 からの経過秒数 (1150451174.95705)

特殊文字:

n 改行文字 (\n)

t タブ文字 (\t)

例 1

C:\PS>get-date -DisplayHint date

Tuesday, June 13, 2006

説明
-----------
このコマンドは、DateTime オブジェクトを取得しますが、日付のみを表示します。DisplayHint パラメーターを使用して、日付のみが表示されることを示します。






例 2

C:\PS>get-date -format g

6/13/2006 12:43 PM

説明
-----------
このコマンドは、現在の日時を取得し、短い日付および短い時間の形式で書式設定します。.NET Framework の "g" 書式指定子 (General (短い日付と短い時刻)) を使用して形式を指定します。






例 3

C:\PS>get-date -uformat "%Y / %m / %d / %A / %Z"

2006 / 06 / 13 / Tuesday / -07

説明
-----------
このコマンドは、現在の日時を取得し、それをコマンドで指定されているとおりに書式設定します。この場合、形式には完全な年 (%Y)、2 桁の月 (%m)、日付 (%d)、完全な曜日 (%A)、および UTC (グリニッジ) との時間差が含まれます。






例 4

C:\PS>(get-date -year 2000 -month 12 -day 31).dayofyear

366

説明
-----------
このコマンドは、現在の日付が 1 年の何番目の日かを表示します。たとえば、12 月 31 日は 2006 年では 365 番目の日ですが、2000 年では 366 番目の日となります。






例 5

C:\PS>$a = get-date

C:\PS> $a.IsDaylightSavingTime()

True

説明
-----------
これらのコマンドは、現在の日時が現在のロケールのサマータイムに合わせて調整されるかどうかを示します。

最初のコマンドは $a という変数を作成し、Get-Date によって取得されたオブジェクトを $a に代入します。次に、$a に保存されているオブジェクトに対して IsDaylightSavingTime メソッドを適用します。

DateTime オブジェクトのプロパティとメソッドを表示するには、次のように入力します。
 "get-date | get-member".






例 6

C:\PS>$a = get-date

C:\PS> $a.ToUniversalTime()

Tuesday, June 13, 2006 8:09:19 PM

説明
-----------
これらのコマンドは、現在の日時を UTC 時間に変換します。

最初のコマンドは $a という変数を作成し、Get-Date によって取得されたオブジェクトを $a に代入します。次に、$a に保存されているオブジェクトの ToUniversalTime メソッドを使用します。






例 7

C:\PS>$a = get-wmiobject win32_bios -computer server01

$a | format-list -property Name, @{Label="BIOS Age"; `
Expression={(get-date) - $_.ConvertToDateTime($_.ReleaseDate)}}

Name     : Default System BIOS
BIOS Age : 1345.17:31:07.1091047

説明
-----------
Windows Management Instrumentation (WMI) は、Get-Date が返す .NET Framework の日時オブジェクトとは異なる日時オブジェクトを使用します。コマンドで WMI からの日時情報と Get-Date からの日時情報を併用するには、ConvertToDateTime メソッドを使用して、WMI の CIM_DATETIME オブジェクトを .NET Framework の DateTime オブジェクトに変換する必要があります。

この例のコマンドは、リモート コンピューター Server01 の BIOS の名前と経過時間を表示します。

最初のコマンドは、Get-WmiObject コマンドレットを使用して Server01 の Win32_BIOS クラスのインスタンスを取得し、それを $a 変数に保存します。

2 番目のコマンドは、パイプライン演算子 (|) を使用して、$a に保存されている WMI オブジェクトを Format-List コマンドレットに送ります。一覧に表示する 2 つのプロパティ Name および BIOS Age を指定するため、Format-List の Property パラメーターを使用します。BIOS Age プロパティはハッシュ テーブルで指定されます。このハッシュ テーブルには、プロパティの名前を指定する Label キーと、BIOS の経過時間を計算する式を含む Expression キーがあります。この式は、ConvertToDateTime メソッドを使用して、ReleaseDate の各インスタンスを .NET Framework の DateTime オブジェクトに変換します。次に、その値が Get-Date コマンドレットの値から減算されます。Get-Date コマンドレットは、パラメーターが指定されていないと現在の日付を取得します。

Windows PowerShell では、バッククォート文字 (`) は行連結文字です。






例 8

C:\PS>get-date

Tuesday, June 13, 2006 12:43:42 PM

説明
-----------
このコマンドは、DateTime オブジェクトを取得し、「get-date -format F」と入力した場合と同様にシステム ロケールの長形式で現在の日付および時刻を表示します。






例 9

C:\PS>get-date

C:\PS> Tuesday, September 26, 2006 11:25:31 AM

c:\PS>(get-date).ToString()
9/26/2006 11:25:31 AM

C:\PS>get-date | add-content test.txt  
# Adds 9/26/2006 11:25:31 AM

C:\PS>get-date -format F | add-content test.txt
# Adds Tuesday, September 26, 2006 11:25:31 AM

説明
-----------
これらのコマンドでは、Get-Date を Add-Content や、Get-Date が生成した DateTime オブジェクトを文字列に変換する他のコマンドレットと組み合わせて使用する方法を示しています。

最初のコマンドは、"get-date" コマンドの既定表示が長形式の日付と長形式の時刻であることを示しています。

2 番目のコマンドは、DateTime オブジェクトの ToString() メソッドの既定表示が短形式の日付と短形式の時刻であることを示しています。

3 番目のコマンドでは、パイプライン演算子を使用して DateTime オブジェクトを Add-Content コマンドレットに送信します。これによって、Test.txt ファイルに内容が追加されます。Add-Content は DateTime オブジェクトの ToString() メソッドを使用するので、追加される日時は短形式の日付と短形式の時刻になります。

4 番目のコマンドは、Get-Date の Format パラメーターを使用して書式を指定しています。Format パラメーターまたは UFormat パラメーターを使用した場合、Get-Date は DateTime オブジェクトではなく文字列を生成します。続けてその文字列を Add-Content に送ると、文字列はそのまま Test.txt ファイルに追加されます。






関連項目




目次