次の方法で共有


Get-Date

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

構文

Get-Date
   [[-Date] <datetime>]
   [-Year <int>]
   [-Month <int>]
   [-Day <int>]
   [-Hour <int>]
   [-Minute <int>]
   [-Second <int>]
   [-Millisecond <int>]
   [-DisplayHint <DisplayHintType>]
   [-Format <string>]
   [<CommonParameters>]
Get-Date
   [[-Date] <datetime>]
   [-Year <int>]
   [-Month <int>]
   [-Day <int>]
   [-Hour <int>]
   [-Minute <int>]
   [-Second <int>]
   [-Millisecond <int>]
   [-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 書式指定子は、次のように定義されています。

指定子 定義
dddd 曜日 - フル ネーム
MM 月番号
dd 月の日 - 2 桁
yyyy 4 桁の形式の年
HH:mm 24 時間形式の時間 -no 秒
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 時間形式の時間 -no 秒
%Z 世界時座標 (UTC) からのタイム ゾーン オフセット

有効な UFormat 書式指定子の一覧については、「Notes」セクションを参照してください。

例 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

変数 $DSTGet-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: タイムスタンプを作成する

この例では、書式指定子によって、ディレクトリ名の文字列 オブジェクト タイムスタンプが作成されます。 タイムスタンプには、日付、時刻、および 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 パラメーターは、ディレクトリが作成されることを指定します。

パラメーター

-Date

日付と時刻を指定します。 時刻は省略可能で、指定しない場合は 00:00:00 を返します。

日付と時刻は、システム・ロケールの標準的な形式で入力します。

たとえば、米国英語では次のようになります。

Get-Date -Date "6/25/2019 12:30:22" 戻り値: 2019年6月25日 12:30:22

型:DateTime
Aliases:LastWriteTime
配置:0
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Day

表示される月の日を指定します。 1 ~ 31 の値を入力します。

指定した値が 1 か月の日数より大きい場合、PowerShell は月に日数を追加します。 たとえば、Get-Date -Month 2 -Day 31 には 2 月 31 日ではなく 3 月3日と表示されます。

型:Int
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-DisplayHint

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

指定できる値は次のとおりです。

  • 日付: 日付のみを表示します
  • 時間: 時刻のみを表示します
  • DateTime: 日付と時刻を表示します
型:DisplayHintType
指定可能な値:Date, Time, DateTime
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る: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。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Hour

表示される時間を指定します。 0 ~ 23 の値を入力します。

型:Int
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Millisecond

日付のミリ秒を指定します。 0 ~ 999 の値を入力します。

このパラメーターは PowerShell 3.0 で導入されました。

型:Int
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Minute

表示される分を指定します。 0 ~ 59 の値を入力します。

型:Int
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Month

表示される月を指定します。 1 ~ 12 の値を入力します。

型:Int
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Second

表示される秒を指定します。 0 ~ 59 の値を入力します。

型:Int
配置: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

-Year

表示される年を指定します。 1 ~ 9999 の値を入力します。

型:Int
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

Pipeline input

Get-Date はパイプライン入力を受け入れます。 たとえば、Get-ChildItem | Get-Date のようにします。

出力

System.DateTime or System.String

Get-Date Format パラメータと UFormat パラメータが使用されている場合を除き、DateTime オブジェクトを返します。 Format または UFormat パラメータは String オブジェクトを返します。

DateTime オブジェクトが、文字列入力を必要とする Add-Content などのコマンドレットにパイプラインに送信されると、PowerShell はオブジェクトを String オブジェクトに変換します。

このメソッドは、(Get-Date).ToString() オブジェクトを String オブジェクトに変換する

オブジェクトのプロパティとメソッドを表示するには、パイプラインの下にオブジェクトを送信して Get-Memberします。 たとえば、Get-Date | Get-Member のようにします。

メモ

DateTime オブジェクトは、システムロケールの長い日付形式と長い時刻形式です。

有効な UFormat 指定子 を次の表に示します。

書式指定子 意味
%A 曜日 - フル ネーム 月曜日
%a 曜日 - 省略名
%B 月名 - 完全 1月
%b 月名 - 省略形
%C 世紀 2019 年 20
%c 日付と時刻 - 省略形 2019年6月27日(木) 08:44:18
%D mm/dd/yy 形式の日付 06/27/19
%d 月の日 - 2 桁 05
%e 日付 - 数字の前にスペースが付いたもの <スペース>5
%F YYYY-mm-dd 形式の日付。%Y-%m-%d (ISO 8601 日付形式) と等しい 2019-06-27
%G 'Y' と同じ
%g 'y' と同じ
%H 24 時間形式の時間 十七
%h 'b' と同じ
%I 12 時間形式の時間 05
%j 年の日 1-366
%k 'H' と同じ
%l 'I' と同じです (大文字の I) 05
%M 議事録 35
%m 月番号 06
%n 改行文字
%p AM または PM
%R 24 時間形式の時間 -no 秒 17:45
%r 12 時間形式の時刻 09:15:36 午前
%S 秒数 05
%s 1970年1月1日から経過した秒数 00:00:00 1150451174.95705
%t 水平タブ文字
%T 24 時間形式の時刻 17:45:52
%U 'W' と同じ
%u 曜日 - 数値 月曜日 = 1
%V 年の週 01-53
%w 'u' と同じ
%W 年の週 00-52
%X 'T' と同じ
%x ロケールの標準形式の日付 06/27/19 English-US
%Y 4 桁の形式の年 2019
%y 2 桁の形式の年 19
%Z 世界時座標 (UTC) からのタイム ゾーン オフセット -07