Get-Date

會收到目前的日期和時間。

語法

DateAndFormat (預設值)

Get-Date
    [[-Date] <DateTime>]
    [-Year <Int32>]
    [-Month <Int32>]
    [-Day <Int32>]
    [-Hour <Int32>]
    [-Minute <Int32>]
    [-Second <Int32>]
    [-Millisecond <Int32>]
    [-DisplayHint <DisplayHintType>]
    [-Format <String>]
    [-AsUTC]
    [<CommonParameters>]

DateAndUFormat

Get-Date
    [[-Date] <DateTime>]
    -UFormat <String>
    [-Year <Int32>]
    [-Month <Int32>]
    [-Day <Int32>]
    [-Hour <Int32>]
    [-Minute <Int32>]
    [-Second <Int32>]
    [-Millisecond <Int32>]
    [-DisplayHint <DisplayHintType>]
    [<CommonParameters>]

UnixTimeSecondsAndFormat

Get-Date
    -UnixTimeSeconds <Int64>
    [-Year <Int32>]
    [-Month <Int32>]
    [-Day <Int32>]
    [-Hour <Int32>]
    [-Minute <Int32>]
    [-Second <Int32>]
    [-Millisecond <Int32>]
    [-DisplayHint <DisplayHintType>]
    [-Format <String>]
    [-AsUTC]
    [<CommonParameters>]

UnixTimeSecondsAndUFormat

Get-Date
    -UnixTimeSeconds <Int64>
    -UFormat <String>
    [-Year <Int32>]
    [-Month <Int32>]
    [-Day <Int32>]
    [-Hour <Int32>]
    [-Minute <Int32>]
    [-Second <Int32>]
    [-Millisecond <Int32>]
    [-DisplayHint <DisplayHintType>]
    [<CommonParameters>]

Description

指令 Get-Date 長會得到一個 DateTime 物件,代表當前日期或你指定的日期。 Get-Date 可在多種 .NET 和 Unix 格式中格式化日期與時間。 你可以用它 Get-Date 產生日期或時間字串,然後把字串傳送到其他 cmdlet 或程式。

Get-Date 利用作業系統目前的文化設定來決定輸出格式。 要查看電腦設定,請使用 (Get-Culture).DateTimeFormat。

範例

範例一:取得當前日期和時間

在此範例中,顯示 Get-Date 當前系統的日期與時間。 輸出格式為長期日期與長期格式。

Get-Date
Tuesday, June 25, 2019 14:53:32

範例 2:取得當前日期和時間的元素

這個範例展示了如何用來 Get-Date 取得日期或時間元素。 參數使用 日期、 時間或 日期時間等參數。

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 格式規範定義如下:

指定符 Definition
dddd 星期幾 - 全名
MM 月份號碼
dd 月份日期 - 兩位數
yyyy 四位數格式的年份
HH:mm 24小時制時間-無秒數
K 時區偏移與世界時區座標(UTC)

欲了解更多關於.NET格式規範符的資訊,請參見 自訂日期與時間格式字串。

範例四:用UFormat規格取得日期和時間

在此範例中,使用多個 UFormat 格式指定器來自訂輸出格式。 輸出是一個 String 物件。

Get-Date -UFormat "%A %m/%d/%Y %R %Z"
Tuesday 06/25/2019 16:19 -07

Get-Date 使用 UFormat 參數來指定多個格式規範符。

本範例中使用的 UFormat 格式規範定義如下:

指定符 Definition
%A 星期幾 - 全名
%m 月份號碼
%d 月份日期 - 兩位數
%Y 四位數格式的年份
%R 24小時制時間-無秒數
%Z 時區偏移與世界時區座標(UTC)

有關有效的 UFormat 格式規範符清單,請參閱 備註 章節。

範例五:取得日期的年份

在此範例中,使用屬性來取得一年中的數字日期。

格里曆有365天,閏年則有366天。 例如,2020年12月31日是第366天。

(Get-Date -Year 2020 -Month 12 -Day 31).DayOfYear
366

Get-Date 使用三個參數來指定日期: 年份、 月份和 日期。 指令以括號包裹,使結果由 DayOfYear 屬性評估。

範例六:檢查日期是否已調整夏令時間

這個例子使用布林方法來驗證日期是否被夏令時間調整。

$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 代表 UTC 偏移量為 -07。

變 $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

範例 11:顯示不變文化

它會 ToString() 用目前的文化設定將 DateTime 物件轉換成 字串 。 然而,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 中引入。

參數屬性

類型:SwitchParameter
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Date

指定日期和時間。 時間為可選,若未指定,則回傳 00:00:00。 請以目前選定地點的標準格式輸入日期與時間。 你可以用 Set-Culture cmdlet 更改目前的地點。

例如,在美式英語中:

Get-Date -Date "6/25/2019 12:30:22" 回歸 時間:2019年6月25日星期二 12:30:22

參數屬性

類型:DateTime
預設值:None
支援萬用字元:False
不要顯示:False
別名:最後寫入時間

參數集

DateAndFormat
Position:0
必要:False
來自管線的值:True
來自管線按屬性名稱的值:True
來自剩餘引數的值:False
DateAndUFormat
Position:0
必要:False
來自管線的值:True
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-Day

指定顯示的月份日期。 輸入 1 到 31 的數值。

若指定的值大於每月天數,PowerShell 會將該月的天數加到該月。 例如,顯示的是 Get-Date -Month 4 -Day 315月1日,而非 4月31日。

參數屬性

類型:Int32
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-DisplayHint

決定顯示日期與時間的哪些元素。

公認的數值如下:

  • 日期:僅顯示日期
  • 時間:只顯示時間
  • DateTime:顯示日期與時間

參數屬性

類型:DisplayHintType
預設值:None
接受的值:Date, Time, DateTime
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Format

以格式規範符所示的 Microsoft .NET Framework 格式顯示日期與時間。 Format 參數會輸出一個 String 物件。

關於可用的.NET格式指定符列表,請參見 Custom date and time format strings。

當使用 Format 參數時, Get-Date 只會取得 DateTime 物件的屬性以顯示日期。 因此, DateTime 物件的某些屬性與方法可能無法使用。

從 PowerShell 5.0 開始,你可以使用以下額外的格式作為 Format 參數的值。

  • 檔案日期。 一個檔案或路徑友好的當地時間日期表示法。 格式為 yyyyMMdd (大小寫區分,使用4位數年份、2位數月份和2位數日)。 例如:20190627。

  • FileDateUniversal。 一個以世界時間(UTC)表示當前日期的檔案或路徑友好表示法。 格式為 yyyyMMddZ (大小寫區分,使用4位數年份、2位數月份、2位數日期及字母 Z 作為UTC指示)。 例如:20190627Z。

  • FileDateTime。 以當地時間呈現的檔案或路徑友善的日期與時間表示,格式為 24 小時。 格式為 yyyyMMddTHHmmssffff (大小寫區分,使用4位數年份、2位數月份、2位數日、字母 T 作為時間分隔符、2位數小時、2位數分鐘、2位數秒及4位數毫秒)。 例如:20190627T0840107271。

  • 檔案日期時間環球。 以世界時(UTC)格式呈現當前日期與時間的檔案或路徑友好表示,採用24小時格式。 格式為 yyyyMMddTHHmmssffffZ (大小寫區分,使用4位數年份、2位數月份、2位數日期,字母 T 作為時間分隔符,2位數小時、2位數分鐘、2位數秒、4位數毫秒,字母 Z 作為UTC指示)。 例如:20190627T1540500718Z。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

DateAndFormat
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
UnixTimeSecondsAndFormat
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Hour

指定顯示的時段。 輸入 0 到 23 的數值。

參數屬性

類型:Int32
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Millisecond

指定日期中的毫秒。 輸入 0 到 999 的數值。

此參數是在 PowerShell 3.0 中引進的。

參數屬性

類型:Int32
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Minute

指定顯示的分鐘。 輸入 0 到 59 的數值。

參數屬性

類型:Int32
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Month

指定顯示的月份。 輸入一個從1到12的數值。

參數屬性

類型:Int32
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Second

指定顯示的第二秒。 輸入 0 到 59 的數值。

參數屬性

類型:Int32
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-UFormat

以 Unix 格式顯示日期與時間。 UFormat 參數輸出一個字串物件。

UFormat 指定符前會加上百分比符號(%),例如、%m、 %d%Y和 。 備註區包含一份有效的 UFormat 規範符表。

當使用 UFormat 參數時, Get-Date 只會取得顯示日期所需的 DateTime 物件屬性。 因此, DateTime 物件的某些屬性與方法可能無法使用。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

DateAndUFormat
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
UnixTimeSecondsAndUFormat
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-UnixTimeSeconds

日期與時間自1970年1月1日0:00:00起以秒表示。

此參數於 PowerShell 7.1 中引入。

參數屬性

類型:Int64
預設值:None
支援萬用字元:False
不要顯示:False
別名:Unix時間

參數集

UnixTimeSecondsAndFormat
Position:Named
必要:True
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
UnixTimeSecondsAndUFormat
Position:Named
必要:True
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Year

指定顯示的年份。 輸入從 1 到 99999 的數值。

參數屬性

類型:Int32
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

CommonParameters

此 cmdlet 支援常見參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。

輸入

DateTime

你可以把 DateTime 物件管到這個 cmdlet。

輸出

DateTime

預設情況下,此 cmdlet 會回傳 一個 DateTime 物件。

當 DateTime 物件被送入管線到預期字串輸入的 cmdlet,PowerShell Add-Content 會將該物件轉換成 字串 物件。

它會 ToString() 用目前的文化設定將 DateTime 物件轉換成 字串 。 然而,PowerShell 表達式的解譯總是使用不變文化設定。 要了解不變文化的差異,請參見 範例11。

要顯示物件的屬性和方法,請將物件沿管線傳送至 Get-Member。 例如: Get-Date | Get-Member 。

String

當你使用 Format 或 UFormat 參數時,這個 cmdlet 會回傳 String 物件。

備註

DateTime 物件輸出的預設格式為當前選擇的區域的長日期格式與長時間格式。

有效的 UFormat 規範符 如下表所示:

這很重要

UFormat 規範符會在較新的 PowerShell 版本中被更改或新增。 例如,%F 是在 PowerShell 6.2 中加入的,因此在 PowerShell 5.1 或更舊版本中Windows無法使用。 在設計給多個版本 PowerShell 執行的腳本中使用 UFormat 指定符時,請記得這點。

格式指定符 Meaning Example
%A 星期幾 - 全名 Monday
%a 星期幾-簡稱 週一
%B 月名 - 完整 1 月
%b 月份名稱 - 縮寫 一月
%C 世紀 2019年20人
%c 日期與時間 - 簡略 2019年6月27日 星期四 08:44:18
%D 日期以毫米/日/年格式表示 06/27/19
%d 月份日期 - 兩位數 05
%e 月份的日期——如果只有一位數,前方會加空格 <空間>5
%F YYYY-mm-dd 格式的日期,等於 %Y-%m-%d(ISO 8601日期格式) 2019-06-27
%G ISO 週日期 年份(含週四)
%g 和「G」一樣,兩位數
%H 24小時一小時節目 17
%h 和「b」一樣
%I 12小時一小時格式 05
%j 一年中的一天 1-366
%k 和「H」一樣
%l 與「I」(大寫 I)相同 05
%M 會議記錄 35
%m 月份號碼 06
%n 新行字元
%p 上午或下午
%R 24小時制時間 -no 秒 17:45
%r 12小時制時間 上午09:15:36
%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 一年中的一周 1-53
%X 和「T」一樣
%x 地點標準格式日期 2019/06/27 為 English-US
%Y 四位數格式的年份 2019
%y 年份以兩位數格式呈現 19
%Z 時區偏移與世界時區座標(UTC) -07

Note

並非所有 UFormat 規範符的結果都與其 Unix 版本相同。 例如:

  • 在基於 Unix 的系統中,會 %W 以 00 到 53 的十進位數字回傳年度週數,從第 01 週的第一天的第一個星期一開始。 每年第一個星期一之前的所有天都屬於第00週。
  • 在 PowerShell 中,會 %W 以小數回傳年度週數,範圍從 1 到 53,沒有前置的零,也沒有週數。 第一週從新年的第一天開始。