Get-Date
Pobiera bieżącą datę i godzinę.
Składnia
Get-Date
[[-Date] <DateTime>]
[-Year <Int32>]
[-Month <Int32>]
[-Day <Int32>]
[-Hour <Int32>]
[-Minute <Int32>]
[-Second <Int32>]
[-Millisecond <Int32>]
[-DisplayHint <DisplayHintType>]
[-Format <String>]
[-AsUTC]
[<CommonParameters>]
Get-Date
[[-Date] <DateTime>]
[-Year <Int32>]
[-Month <Int32>]
[-Day <Int32>]
[-Hour <Int32>]
[-Minute <Int32>]
[-Second <Int32>]
[-Millisecond <Int32>]
[-DisplayHint <DisplayHintType>]
-UFormat <String>
[<CommonParameters>]
Get-Date
-UnixTimeSeconds <Int64>
[-Year <Int32>]
[-Month <Int32>]
[-Day <Int32>]
[-Hour <Int32>]
[-Minute <Int32>]
[-Second <Int32>]
[-Millisecond <Int32>]
[-DisplayHint <DisplayHintType>]
[-Format <String>]
[-AsUTC]
[<CommonParameters>]
Get-Date
-UnixTimeSeconds <Int64>
[-Year <Int32>]
[-Month <Int32>]
[-Day <Int32>]
[-Hour <Int32>]
[-Minute <Int32>]
[-Second <Int32>]
[-Millisecond <Int32>]
[-DisplayHint <DisplayHintType>]
-UFormat <String>
[<CommonParameters>]
Opis
Polecenie cmdlet Get-Date
pobiera obiekt DateTime reprezentujący bieżącą datę lub datę, którą określisz.
Get-Date
można sformatować datę i godzinę w kilku formatach .NET i UNIX. Za pomocą Get-Date
można wygenerować ciąg znaków daty lub godziny, a następnie wysłać ciąg do innych poleceń cmdlet lub programów.
Get-Date
używa bieżących ustawień kultury systemu operacyjnego do określenia sposobu formatowania danych wyjściowych. Aby wyświetlić ustawienia komputera, użyj (Get-Culture).DateTimeFormat
.
Przykłady
Przykład 1. Pobieranie bieżącej daty i godziny
W tym przykładzie Get-Date
wyświetla bieżącą datę i godzinę systemu. Dane wyjściowe są w formatach daty długiej i długiej.
Get-Date
Tuesday, June 25, 2019 14:53:32
Przykład 2. Pobieranie elementów bieżącej daty i godziny
W tym przykładzie pokazano, jak użyć Get-Date
, aby pobrać element daty lub godziny. Parametr używa argumentów Date, Timelub DateTime.
Get-Date -DisplayHint Date
Tuesday, June 25, 2019
Get-Date
używa parametru DisplayHint z argumentem Date, aby uzyskać tylko datę.
Przykład 3. Pobieranie daty i godziny za pomocą specyfikatora formatu .NET
W tym przykładzie specyfikator formatu .NET służy do dostosowywania formatu danych wyjściowych. Dane wyjściowe są obiektem string
Get-Date -Format "dddd MM/dd/yyyy HH:mm K"
Tuesday 06/25/2019 16:17 -07:00
Specyfikatory formatu platformy .NET używane w tym przykładzie są definiowane w następujący sposób:
Specyfikator | Definicja |
---|---|
dddd |
Dzień tygodnia — imię i nazwisko |
MM |
Numer miesiąca |
dd |
Dzień miesiąca — 2 cyfry |
yyyy |
Rok w formacie 4-cyfrowym |
HH:mm |
Czas w formacie 24-godzinnym — bez sekund |
K |
Przesunięcie strefy czasowej z współrzędnej uniwersalnej godziny (UTC) |
Aby uzyskać więcej informacji na temat specyfikatorów formatu platformy .NET, zobacz Niestandardowe ciągi formatu daty i godziny.
Przykład 4. Pobieranie daty i godziny za pomocą specyfikatora UFormat
W tym przykładzie kilka specyfikatorów formatu UFormat
Get-Date -UFormat "%A %m/%d/%Y %R %Z"
Tuesday 06/25/2019 16:19 -07
Get-Date
używa parametru UFormat, aby określić kilka specyfikatorów formatu.
Specyfikatory formatu
Specyfikator | Definicja |
---|---|
%A |
Dzień tygodnia — imię i nazwisko |
%m |
Numer miesiąca |
%d |
Dzień miesiąca — 2 cyfry |
%Y |
Rok w formacie 4-cyfrowym |
%R |
Czas w formacie 24-godzinnym — bez sekund |
%Z |
Przesunięcie strefy czasowej z współrzędnej uniwersalnej godziny (UTC) |
Aby uzyskać listę prawidłowych specyfikatorów formatu UFormat, zobacz sekcję Notes.
Przykład 5. Pobieranie daty roku
W tym przykładzie właściwość służy do pobierania dnia liczbowego roku.
Kalendarz gregoriański ma 365 dni, z wyjątkiem lat przestępnych, które mają 366 dni. Na przykład 31 grudnia 2020 r. to dzień 366.
(Get-Date -Year 2020 -Month 12 -Day 31).DayOfYear
366
Get-Date
używa trzech parametrów, aby określić datę: Year, Monthi Day. Polecenie jest opakowane nawiasami, aby wynik został oceniony przez właściwość DayofYear.
Przykład 6: Sprawdzanie, czy data jest dostosowywana do czasu letniego
W tym przykładzie użyto metody logicznej, aby sprawdzić, czy data jest dostosowywana przez czas letni.
$DST = Get-Date
$DST.IsDaylightSavingTime()
True
Zmienna $DST
przechowuje wynik Get-Date
.
$DST
używa metody IsDaylightSavingTime, aby sprawdzić, czy data jest dostosowywana do czasu letniego.
Przykład 7. Konwertowanie bieżącej godziny na czas UTC
W tym przykładzie bieżąca godzina jest konwertowana na czas UTC. Przesunięcie CZASU UTC dla ustawień regionalnych systemu jest używane do konwertowania czasu. Tabela w sekcji Notes zawiera prawidłowe specyfikatory formatu 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
używa parametru UFormat z specyfikatorami formatu do wyświetlania bieżącej daty i godziny systemu. Specyfikator formatu %Z reprezentuje przesunięcie UTC -07.
Zmienna $Time
przechowuje bieżącą datę i godzinę systemu.
$Time
używa metody ToUniversalTime()
do konwertowania czasu na podstawie przesunięcia UTC komputera.
Przykład 8. Tworzenie znacznika czasu
W tym przykładzie specyfikator formatu tworzy znacznik czasu string obiektu dla nazwy katalogu. Znacznik czasu obejmuje przesunięcie daty, godziny i 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
Zmienna $timestamp
przechowuje wyniki polecenia Get-Date
.
Get-Date
używa parametru Format z specyfikatorem formatu małych liter o
do utworzenia znacznika czasu obiektu string. Obiekt jest wysyłany w dół potoku do ForEach-Object
.
ScriptBlock zawiera zmienną $_
reprezentującą bieżący obiekt potoku. Ciąg znacznika czasu jest rozdzielany dwukropkami, które są zastępowane kropkami.
$timestamp
jako nazwę katalogu. Parametr Type określa, że katalog jest tworzony.
Przykład 9. Konwertowanie znacznika czasu systemu Unix
Ten przykład konwertuje czas systemu Unix (reprezentowany przez liczbę sekund od 1970-01-01 01 0:00:00) do daty/godziny.
Get-Date -UnixTimeSeconds 1577836800
Wednesday, January 01, 2020 12:00:00 AM
Przykład 10: Zwracanie wartości daty interpretowanej jako UTC
W tym przykładzie pokazano, jak interpretować wartość daty jako równoważną utc. Na przykład ta maszyna jest ustawiona na czasu pacyficznego (czas standardowy). Domyślnie Get-Date
zwraca wartości dla tej strefy czasowej. Użyj parametru AsUTC, aby przekonwertować wartość na czas równoważny 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
Przykład 11. Pokaż niezmienną kulturę
ToString()
konwertuje obiekt DateTime ciąg przy użyciu bieżącego ustawienia kultury.
Jednak interpretacja wyrażeń programu PowerShell zawsze używa niezmiennego ustawienia kultury.
Na przykład w systemie z obowiązującą kulturą en-US
metoda ToString()
formatuje datę przy użyciu ustawień kultury 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
Parametry
-AsUTC
Konwertuje wartość daty na odpowiedni czas w formacie UTC.
Ten parametr został wprowadzony w programie PowerShell 7.1.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Date
Określa datę i godzinę. Czas jest opcjonalny i jeśli nie zostanie określony, zwraca wartość 00:00:00. Wprowadź datę i godzinę w formacie standardowym dla aktualnie wybranych ustawień regionalnych. Bieżące ustawienia regionalne można zmienić przy użyciu polecenia cmdlet Set-Culture
.
Na przykład w języku angielskim USA:
Get-Date -Date "6/25/2019 12:30:22"
zwraca wtorek, 25 czerwca 2019 12:30:22
Typ: | DateTime |
Aliasy: | LastWriteTime |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-Day
Określa dzień wyświetlanego miesiąca. Wprowadź wartość z zakresu od 1 do 31.
Jeśli określona wartość jest większa niż liczba dni w miesiącu, program PowerShell dodaje liczbę dni do miesiąca. Na przykład Get-Date -Month 4 -Day 31
wyświetla 1 maja 1, a nie 31 kwietnia.
Typ: | Int32 |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-DisplayHint
Określa, które elementy daty i godziny są wyświetlane.
Akceptowane wartości są następujące:
- data: wyświetla tylko datę
- Time: wyświetla tylko czas
- data/godzina: wyświetla datę i godzinę
Typ: | DisplayHintType |
Dopuszczalne wartości: | Date, Time, DateTime |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Format
Wyświetla datę i godzinę w formacie programu Microsoft .NET Framework wskazanym przez specyfikator formatu. Parametr Format zwraca obiekt String.
Aby uzyskać listę dostępnych specyfikatorów formatu .NET, zobacz Niestandardowe ciągi formatu daty i godziny.
Gdy jest używany parametr format
Począwszy od programu PowerShell 5.0, można użyć następujących dodatkowych formatów jako wartości parametru Format.
FileDate. Przyjazna dla pliku lub ścieżki reprezentacja bieżącej daty w czasie lokalnym. Format jest
yyyyMMdd
(z uwzględnieniem wielkości liter przy użyciu 4-cyfrowego roku, 2-cyfrowego miesiąca i 2-cyfrowego dnia). Na przykład: 20190627.FileDateUniversal. Przyjazna dla pliku lub ścieżki reprezentacja bieżącej daty w czasie uniwersalnym (UTC). Format jest
yyyyMMddZ
(uwzględniana wielkość liter przy użyciu 4-cyfrowego roku, 2-cyfrowego miesiąca, 2-cyfrowego dnia i literyZ
jako wskaźnika UTC). Na przykład: 20190627Z.FileDateTime. Przyjazna dla pliku lub ścieżki reprezentacja bieżącej daty i godziny w czasie lokalnym w formacie 24-godzinnym. Format jest
yyyyMMddTHHmmssffff
(z uwzględnieniem wielkości liter przy użyciu 4-cyfrowego roku, 2-cyfrowego miesiąca, 2-cyfrowego dnia, literyT
jako separatora czasu, 2-cyfrowej godziny, 2-cyfrowej minuty, 2-cyfrowej sekundy i 4-cyfrowej milisekundy). Na przykład: 20190627T0840107271.FileDateTimeUniversal. Przyjazna dla pliku lub ścieżki reprezentacja bieżącej daty i godziny w formacie uniwersalnym (UTC) w formacie 24-godzinnym. Format jest
yyyyMMddTHHmmssffffZ
(z uwzględnieniem wielkości liter przy użyciu 4-cyfrowego roku, 2-cyfrowego miesiąca, 2-cyfrowego dnia, literyT
jako separatora czasu, 2-cyfrowej godziny, 2-cyfrowej minuty, 2-cyfrowej sekundy, 4-cyfrowej milisekundy i literyZ
jako wskaźnika UTC). Na przykład: 20190627T1540500718Z.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Hour
Określa wyświetlaną godzinę. Wprowadź wartość z zakresu od 0 do 23.
Typ: | Int32 |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Millisecond
Określa milisekundy w dacie. Wprowadź wartość z zakresu od 0 do 999.
Ten parametr został wprowadzony w programie PowerShell 3.0.
Typ: | Int32 |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Minute
Określa wyświetlaną minutę. Wprowadź wartość z zakresu od 0 do 59.
Typ: | Int32 |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Month
Określa wyświetlany miesiąc. Wprowadź wartość z zakresu od 1 do 12.
Typ: | Int32 |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Second
Określa sekundę, która jest wyświetlana. Wprowadź wartość z zakresu od 0 do 59.
Typ: | Int32 |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-UFormat
Wyświetla datę i godzinę w formacie SYSTEMU UNIX. Parametr UFormat zwraca obiekt ciągu.
specyfikatory UFormat są poprzedzone znakiem procentu (%
), na przykład %m
, %d
i %Y
. Sekcja Notes zawiera tabelę prawidłowych specyfikatorów formatu UFormat .
Gdy jest używany parametr formatu UFormat
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-UnixTimeSeconds
Data i godzina reprezentowana w sekundach od 1 stycznia 1970 r., 0:00:00.
Ten parametr został wprowadzony w programie PowerShell 7.1.
Typ: | Int64 |
Aliasy: | UnixTime |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Year
Określa wyświetlany rok. Wprowadź wartość z zakresu od 1 do 9999.
Typ: | Int32 |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
Dane wejściowe
Do tego polecenia cmdlet można przekazać obiekt DateTime.
Dane wyjściowe
Domyślnie to polecenie cmdlet zwraca obiekt DateTime.
Gdy obiekt DateTime jest wysyłany w dół potoku do polecenia cmdlet, takiego jak Add-Content
, które oczekuje danych wejściowych ciągu, program PowerShell konwertuje obiekt na obiekt String.
Aby wyświetlić właściwości i metody obiektu, wyślij obiekt w dół potoku do Get-Member
.
Na przykład Get-Date | Get-Member
.
Jeśli używasz parametrów
Uwagi
Domyślne formaty danych wyjściowych obiektów DateTime to formaty daty i godziny długiej dla aktualnie wybranych ustawień regionalnych.
Prawidłowe specyfikatory formatu UFormat
Ważny
specyfikatory UFormat są zmieniane lub dodawane w nowszych wersjach programu PowerShell. Na przykład %F
został dodany w programie PowerShell 6.2, więc nie jest dostępny w programie Windows PowerShell 5.1 lub starszym. Należy pamiętać, że w przypadku używania specyfikatorów UFormat
Specyfikator formatu | Znaczenie | Przykład |
---|---|---|
%A |
Dzień tygodnia — imię i nazwisko | Poniedziałek |
%a |
Dzień tygodnia — skrócona nazwa | Poniedziałek |
%B |
Nazwa miesiąca — pełna | Styczeń |
%b |
Nazwa miesiąca — skrócona | Jan |
%C |
Stulecie | 20 na rok 2019 |
%c |
Data i godzina — skrócone | Czw 27 czerwca 08:44:18 2019 |
%D |
Data w formacie mm/dd/yy | 06/27/19 |
%d |
Dzień miesiąca — 2 cyfry | 05 |
%e |
Dzień miesiąca — poprzedzony spacją, jeśli tylko jedna cyfra | <miejsca>5 |
%F |
Data w formaciemm-dd RRRR, równa %Y—%m—%d (format daty ISO 8601) | 2019-06-27 |
%G |
Rok daty tygodnia ISO (rok zawierający czwartek tygodnia) | |
%g |
Tak samo jak "G" — 2 cyfry | |
%H |
Godzina w formacie 24-godzinnym | 17 |
%h |
Tak samo jak "b" | |
%I |
Godzina w formacie 12-godzinnym | 05 |
%j |
Dzień roku | 1-366 |
%k |
Tak samo jak "H" | |
%l |
Tak samo jak "I" (wielkie litery I) | 05 |
%M |
Protokół | 35 |
%m |
Numer miesiąca | 06 |
%n |
znak nowego wiersza | |
%p |
AM lub PM | |
%R |
Czas w formacie 24-godzinnym -no sekund | 17:45 |
%r |
Czas w formacie 12-godzinnym | 09:15:36 |
%S |
Sekund | 05 |
%s |
Liczba sekund upłynęło od 1 stycznia 1970 r. 00:00:00 (UTC) | 1150451174 |
%t |
Znak karty poziomej | |
%T |
Czas w formacie 24-godzinnym | 17:45:52 |
%U |
Tak samo jak "W" | |
%u |
Numeryczny dzień tygodnia (1–7) (zmieniony w programie PowerShell 7.2) | Poniedziałek = 1, niedziela = 7 |
%V |
Tydzień roku | 01-53 |
%w |
Numeryczny dzień tygodnia (0–6) | Niedziela = 0, sobota = 6 |
%W |
Tydzień roku | 00-52 |
%X |
Tak samo jak "T" | |
%x |
Data w formacie standardowym dla ustawień regionalnych | 06/27/19 dla English-US |
%Y |
Rok w formacie 4-cyfrowym | 2019 |
%y |
Rok w formacie 2-cyfrowym | 19 |
%Z |
Przesunięcie strefy czasowej z współrzędnej uniwersalnej godziny (UTC) | -07 |
Nuta
Zachowanie -UFormat %s
zostało zmienione w celu rozwiązania problemów z zachowaniem w programie Windows PowerShell.
- Wartość zwracana jest oparta na czasie UTC.
- Wartość jest liczbą całkowitą sekund (bez części ułamkowej).