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>]
[<CommonParameters>]
Get-Date
[[-Date] <DateTime>]
[-Year <Int32>]
[-Month <Int32>]
[-Day <Int32>]
[-Hour <Int32>]
[-Minute <Int32>]
[-Second <Int32>]
[-Millisecond <Int32>]
[-DisplayHint <DisplayHintType>]
[-UFormat <String>]
[<CommonParameters>]
Opis
Polecenie Get-Date
cmdlet pobiera obiekt DateTime reprezentujący bieżącą datę lub datę, którą określisz. Get-Date
może formatować datę i godzinę w kilku formatach .NET i UNIX. Możesz użyć Get-Date
polecenia , aby 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, aby określić sposób formatowania danych wyjściowych. Aby wyświetlić ustawienia komputera, użyj polecenia (Get-Culture).DateTimeFormat
.
Przykłady
Przykład 1. Pobieranie bieżącej daty i godziny
W tym przykładzie Get-Date
jest wyświetlana bieżąca data i godzina 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
polecenia , aby pobrać element daty lub godziny. Parametr używa argumentów Date, Time lub 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
Get-Date
używa parametru Format , aby określić kilka specyfikatorów formatu.
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 .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 służy do dostosowywania formatu danych wyjściowych. Dane wyjściowe są obiektem String .
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 UFormat używane w tym przykładzie są definiowane w następujący sposób:
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ę Uwagi .
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ę: Rok, Miesiąc i Dzień. Polecenie jest opakowane nawiasami, aby wynik był obliczany 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 przechowuje $DST
wynik .Get-Date
$DST
używa metody IsDaylightSavingTime, aby sprawdzić, czy data jest dostosowana 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 Notatki zawiera listę prawidłowych specyfikatorów 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, aby wyświetlić bieżącą datę i godzinę systemu. Specyfikator formatu %Z reprezentuje przesunięcie UTC - 07.
Zmienna $Time
przechowuje bieżącą datę i godzinę systemu. $Time
ToUniversalTime()
metoda używa metody , aby przekonwertować czas na podstawie przesunięcia UTC komputera.
Przykład 8. Tworzenie znacznika czasu
W tym przykładzie specyfikator formatu tworzy obiekt string znacznika czasu 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 Get-Date
polecenia. Get-Date
używa parametru Format z specyfikatorem formatu małych litero
, aby utworzyć obiekt string znacznika czasu. Obiekt jest wysyłany w dół potoku do ForEach-Object
. Element ScriptBlock zawiera zmienną $_
reprezentującą bieżący obiekt potoku. Ciąg znacznika czasu jest rozdzielany dwukropkami, które są zastępowane kropkami.
New-Item
używa parametru Ścieżka , aby określić lokalizację nowego katalogu. Ścieżka zawiera zmienną $timestamp
jako nazwę katalogu. Parametr Type określa, że katalog jest tworzony.
Przykład 9. Pokaż niezmienną kulturę
Obiekt ToString()
DateTime konwertuje obiekt DateTime na 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 en-US
kulturą w efekcie ToString()
metoda formatuje datę przy użyciu en-US
ustawień kultury.
# 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
-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 Set-Culture
polecenia cmdlet .
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, 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ę
- Godzina: 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 parametr Format jest używany, Get-Date
pobiera tylko właściwości obiektu DateTime niezbędne do wyświetlenia daty. W związku z tym niektóre właściwości i metody obiektów DateTime mogą nie być dostępne.
Począwszy od programu PowerShell 5.0, można użyć następujących dodatkowych formatów jako wartości parametru Format .
PlikDate. Przyjazna dla pliku lub ścieżki reprezentacja bieżącej daty w czasie lokalnym. Format to
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 to
yyyyMMddZ
(z uwzględnieniem wielkości 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 to
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 generuje obiekt ciągu.
Specyfikatory UFormat są poprzedzone znakiem procentu (%
), na przykład %m
, %d
i %Y
. Sekcja Uwagi zawiera tabelę prawidłowych specyfikatorów UFormat.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
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
oczekiwano danych wejściowych ciągu, program PowerShell konwertuje obiekt na obiekt String.
Obiekt ToString()
DateTime konwertuje obiekt DateTime na ciąg przy użyciu bieżącego ustawienia kultury.
Jednak interpretacja wyrażeń programu PowerShell zawsze używa niezmiennego ustawienia kultury. Aby zobaczyć, jak niezmienna kultura jest inna, zobacz Przykład 9.
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 Format lub UFormat , to polecenie cmdlet zwraca obiekty String .
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 UFormat są wyświetlane w poniższej tabeli:
Ważne
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 w skryptach przeznaczonych do uruchamiania w wielu wersjach programu PowerShell.
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 | Sty |
%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 | <spacja>5 |
%G |
Tak samo jak "Y" | |
%g |
Tak samo jak "y" | |
%H |
Godzina w formacie 24-godzinnym | 17 |
%h |
Tak samo jak "b" | |
%I |
Godzina w formacie 12-godzinnym | 05 |
%j |
Dzień roku (nie obejmuje wiodących 0 — naprawiono w programie PowerShell 6+) |
1-366 |
%k |
Tak samo jak "H" | |
%l |
Tak samo jak "I" (wielkie litery I) | 05 |
%M |
Minuty | 35 |
%m |
Numer miesiąca | 6 |
%n |
znak nowego wiersza | |
%p |
AM lub PM | |
%R |
Czas w formacie 24-godzinnym — bez sekund | 17:45 |
%r |
Czas w formacie 12-godzinnym | 09:15:36 |
%S |
Sekundy | 05 |
%s |
Liczba sekund upłynęło od 1 stycznia 1970 r. 00:00:00 (przekonwertowana na czas lokalny) | 1150451174.95705 |
%t |
Znak karty poziomej | |
%T |
Czas w formacie 24-godzinnym | 17:45:52 |
%U |
Tak samo jak "W" | |
%u |
Dzień tygodnia — liczba | Niedziela = 0 |
%V |
Tydzień roku | 01-53 |
%w |
Tak samo jak "u" | |
%W |
Tydzień roku | 00-52 |
%X |
Tak samo jak "T" | |
%x |
Data w formacie standardowym dla ustawień regionalnych | 06/27/19 dla języka angielskiego-USA |
%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 |
Uwaga
Zachowanie Get-Date -UFormat %s
programu Windows PowerShell w programie jest niepoprawne pod dwoma względami:
- Wartość zwracana jest oparta na czasie lokalnym zamiast czasu UTC.
- Reprezentacja ciągu wartości sekund ma część ułamkową. Dane wyjściowe są wrażliwe na kulturę w odniesieniu do znacznika dziesiętnego.
Te zachowania zostały naprawione w programie PowerShell 6 lub nowszym.