PowerShell Cmdlet - Get-Date
 記事記号:[mf1965] 初版:2011/Sep/30

この文書は、Windows PowerShellのヘルプ機能で表示される内容を再構成したものです。

名前
    Get-Date
    
概要
    現在の日付と時刻を取得します。
    
構文
    Get-Date [-Format <string>] [[-Date] <DateTime>] [-Day <int>] [-DisplayHint 
    {Date | Time | DateTime}] [-Hour <int>] [-Minute <int>] [-Month <int>] [-Sec
    ond <int>] [-Year <int>] [<CommonParameters>]
    
    Get-Date [-UFormat <string>] [[-Date] <DateTime>] [-Day <int>] [-DisplayHint 
    {Date | Time | DateTime}] [-Hour <int>] [-Minute <int>] [-Month <int>] [-Sec
    ond <int>] [-Year <int>] [<CommonParameters>]
        
説明
    Get-Date コマンドレットは、現在の日付または指定した日付を表す DateTime オブ
    ジェクトを取得します。このコマンドを使用すると、日付と時刻をいくつかの Windo
    ws 形式または 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.datetimefor
        matinfo(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、WarningAction、WarningVariable、
        OutBuffer、および OutVariable。詳細については、
        「get-help about_commonparameters」と入力してヘルプを参照してください。
    
入力
    なし
        パイプを使用してこのコマンドレットに入力を渡すことはできません。
    
出力
    System.DateTime または System.String
        Format パラメーターまたは UFormat パラメーターを使用した場合、出力オブ
        ジェクトは System.String になります。
    
メモ
        既定では、日付および時刻はシステム ロケールの日時を長形式で表現したもの
        になります。
        
        文字列の入力を必要とする Add-Content などのコマンドレットにパイプ機能を
        使用して日付を送る場合、Windows PowerShell は DateTime オブジェクトを文
        字列に変換してからファイルに追加します。既定の ToString() 形式では、日
        付が短形式に、時刻が長形式になります。別の形式を指定する場合は、Get-Dat
        e の 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 オブジェクトを取得しますが、日付のみを表示します。D
    isplayHint パラメーターを使用して、日付のみが表示されることを示します。
    
    -------------------------- 例 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 に保存されているオブジェクトに対して IsDayl
    ightSavingTime メソッドを適用します。
    
    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 に保存されているオブジェクトの ToUniversalT
    ime メソッドを使用します。
    
    -------------------------- 例 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 の DateTim
    e オブジェクトに変換する必要があります。
    
    この例のコマンドは、リモート コンピューター Server01 の BIOS の名前と経過時
    間を表示します。
    
    最初のコマンドは、Get-WmiObject コマンドレットを使用して Server01 の Win32_B
    IOS クラスのインスタンスを取得し、それを $a 変数に保存します。
    
    2 番目のコマンドは、パイプライン演算子 (|) を使用して、$a に保存されている W
    MI オブジェクトを Format-List コマンドレットに送ります。一覧に表示する 2 つ
    のプロパティ Name および BIOS Age を指定するため、Format-List の Property パ
    ラメーターを使用します。BIOS Age プロパティはハッシュ テーブルで指定されます。
    このハッシュ テーブルには、プロパティの名前を指定する Label キーと、BIOS の
    経過時間を計算する式を含む Expression キーがあります。この式は、ConvertToDat
    eTime メソッドを使用して、ReleaseDate の各インスタンスを .NET Framework の D
    ateTime オブジェクトに変換します。次に、その値が 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 が生成した DateTi
    me オブジェクトを文字列に変換する他のコマンドレットと組み合わせて使用する方
    法を示しています。
    
    最初のコマンドは、"get-date" コマンドの既定表示が長形式の日付と長形式の時刻
    であることを示しています。
    
    2 番目のコマンドは、DateTime オブジェクトの ToString() メソッドの既定表示が
    短形式の日付と短形式の時刻であることを示しています。
    
    3 番目のコマンドでは、パイプライン演算子を使用して DateTime オブジェクトを A
    dd-Content コマンドレットに送信します。これによって、Test.txt ファイルに内容
    が追加されます。Add-Content は DateTime オブジェクトの ToString() メソッドを
    使用するので、追加される日時は短形式の日付と短形式の時刻になります。
    
    4 番目のコマンドは、Get-Date の Format パラメーターを使用して書式を指定して
    います。Format パラメーターまたは UFormat パラメーターを使用した場合、Get-Da
    te は DateTime オブジェクトではなく文字列を生成します。続けてその文字列を Ad
    d-Content に送ると、文字列はそのまま Test.txt ファイルに追加されます。
    
関連するリンク
    Online version: http://go.microsoft.com/fwlink/?LinkID=113313
    Set-Date 
    New-TimeSpan 
    	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、Cmdlet、Get-Date
ご利用数: 1973203
感想・要望・問い合わせは こちら