Udostępnij za pośrednictwem


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 $DSTuż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. $TimeToUniversalTime() 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-Dateuż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 litery Z 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, litery T 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, litery T jako separatora czasu, 2-cyfrowej godziny, 2-cyfrowej minuty, 2-cyfrowej sekundy, 4-cyfrowej milisekundy i litery Z 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, %di %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

DateTime

Do tego polecenia cmdlet można przekazać obiekt DateTime .

Dane wyjściowe

DateTime

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.

String

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.