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,沒有前置的零,也沒有週數。 第一週從新年的第一天開始。