Get-Date
取得目前的日期和時間。
語法
net (預設值)
Get-Date
[[-Date] <DateTime>]
[-Year <Int32>]
[-Month <Int32>]
[-Day <Int32>]
[-Hour <Int32>]
[-Minute <Int32>]
[-Second <Int32>]
[-Millisecond <Int32>]
[-DisplayHint <DisplayHintType>]
[-Format <String>]
[<CommonParameters>]
UFormat
Get-Date
[[-Date] <DateTime>]
[-Year <Int32>]
[-Month <Int32>]
[-Day <Int32>]
[-Hour <Int32>]
[-Minute <Int32>]
[-Second <Int32>]
[-Millisecond <Int32>]
[-DisplayHint <DisplayHintType>]
[-UFormat <String>]
[<CommonParameters>]
Description
Get-Date Cmdlet 會取得 DateTime 物件,代表您指定的目前日期或日期。
Get-Date 可以使用數種 .NET 和 Unix 格式來格式化日期和時間。 您可以使用 Get-Date 來產生日期或時間字元字串,然後將字串傳送至其他 Cmdlet 或程式。
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 小時格式的時間 - 沒有秒數 |
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 小時格式的時間 - 沒有秒數 |
%Z |
通用時間座標的時區位移(UTC) |
如需有效 UFormat 格式規範的清單,請參閱 Notes 一節。
範例 5:取得年度日期日期
在此範例中,會使用 屬性來取得年份的數值日期。
公曆有 365 天,但有 366 天的閏年除外。 例如,2020 年 12 月 31 日是 366 天。
(Get-Date -Year 2020 -Month 12 -Day 31).DayOfYear
366
Get-Date 使用三個參數來指定日期:Year、Month和 Day。 命令會以括號包裝,讓結果由 DayOfYear 屬性進行評估。
範例 6:檢查是否調整日光節約時間的日期
此範例會使用布爾方法來驗證日期是否由日光節約時間調整。
$DST = Get-Date
$DST.IsDaylightSavingTime()
True
變數,$DST 儲存 Get-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:建立時間戳
在此範例中,格式規範會建立目錄名稱的時間戳 String 物件。 時間戳包含日期、時間和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 參數會指定建立目錄。
範例 9:顯示不因文化特性而異
ToString() 會使用目前的文化特性設定,將 DateTime 物件轉換成 String。
不過,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
參數
-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 |
| 別名: | 最後寫入時間 |
參數集
(All)
| Position: | 0 |
| 必要: | False |
| 來自管線的值: | True |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-Day
指定顯示月份的日期。 輸入從 1 到 31 的值。
如果指定的值大於月份中的天數,PowerShell 會將天數新增至月份。 例如,Get-Date -Month 4 -Day 31 會顯示 5 月 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 格式規範清單,請參閱 自訂日期和時間格式字串。
使用 Format 參數時,Get-Date 只會取得顯示日期所需的 DateTime 物件屬性。 因此,DateTime 物件的某些屬性和方法可能無法使用。
從 PowerShell 5.0 開始,您可以使用下列其他格式做為 Format 參數的值。
FileDate。 以當地時間表示目前日期的檔案或路徑易記表示法。 格式
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。FileDateTimeUniversal。 以 24 小時格式表示目前日期和時間的檔案或路徑易記表示法。 格式為
yyyyMMddTHHmmssffffZ(區分大小寫,使用 4 位數年份、2 位數月份、2 位數的日期、字母T作為時間分隔符、2 位數小時、2 位數分鐘、2 位數秒、4 位數毫秒,以及字母Z為 UTC 指標)。 例如:20190627T1540500718Z。
參數屬性
| 類型: | String |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
net
| 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。
Notes 區段包含有效 UFormat 規範資料表。
參數屬性
| 類型: | String |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
UFormat
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Year
指定顯示的年份。 輸入從 1 到 9999 的值。
參數屬性
| 類型: | 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 物件向下傳送至需要字元串輸入 Add-Content 這類 Cmdlet 時,PowerShell 會將對象轉換成 String 物件。
ToString() 會使用目前的文化特性設定,將 DateTime 物件轉換成 String。
不過,PowerShell 表達式解譯一律會使用不因文化特性而異的設定。 若要查看不因文化特性而異,請參閱 範例 9。
若要顯示物件的屬性和方法,請將物件向下傳送至管線,以 Get-Member。
例如: Get-Date | Get-Member 。
String
當您使用 Format 或 UFormat 參數時,此 Cmdlet 會傳回 String 物件。
備註
DateTime 物件輸出的預設格式是目前選取的地區設定的長日期和時間格式。
下表顯示有效的 UFormat 規範:
這很重要
UFormat 規範在較新版本的 PowerShell 中變更或新增。 例如,%F 已在PowerShell 6.2中新增,因此無法在 Windows PowerShell 5.1 或更舊版本中使用。 在設計為在多個 PowerShell 版本上執行的腳本中使用 UFormat 規範時,請記住這一點。
| 格式規範 | 意義 | 範例 |
|---|---|---|
%A |
一周中的一天 - 全名 | 星期一 |
%a |
一周中的一天 - 縮寫名稱 | 星期一 |
%B |
月份名稱 - 完整 | 一月 |
%b |
月份名稱 - 縮寫 | Jan |
%C |
世紀 | 2019年20 |
%c |
日期和時間 - 縮寫 | 週四 Jun 27 08:44:18 2019 |
%D |
mm/dd/yy 格式的日期 | 06/27/19 |
%d |
月份的日期 - 2 位數 | 05 |
%e |
月份的日期 - 如果只有一位數,則前面加上空格 | <空間>5 |
%G |
與 『Y』 相同 | |
%g |
與 『y』 相同 | |
%H |
24 小時格式的小時 | 17 |
%h |
與 『b』 相同 | |
%I |
12 小時格式的小時 | 05 |
%j |
年度日期 (不包含前置 0 - PowerShell 6+中已修正) |
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 |
星期幾 - 數位 | 星期日 = 0 |
%V |
一年中的一周 | 01-53 |
%w |
與 『u』 相同 | |
%W |
一年中的一周 | 1-53 |
%X |
與 『T』 相同 | |
%x |
地區設定的標準格式日期 | 06/27/19 為 English-US |
%Y |
4 位數格式的年份 | 2019 |
%y |
2 位數格式的年份 | 19 |
%Z |
通用時間座標的時區位移(UTC) | -07 |
備註
Windows PowerShell 與 Get-Date -UFormat %s 的行為在兩方面不正確:
- 傳回值是以當地時間而非UTC時間為基礎。
- 秒值的字串表示具有小數部分。 輸出會區分文化特性,與小數點有關。
PowerShell 6 和更新版本中已修正這些行為。