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 Get-Date cmdlet pobiera obiekt DateTime reprezentujący bieżącą datę lub datę, którą określisz. Get-Datemoże formatować datę i godzinę w kilku formatach .NET i system 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. 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 Pacyfik (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ę

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

-AsUTC

Konwertuje wartość daty na odpowiedni czas w formacie UTC.

Ten parametr został wprowadzony w programie PowerShell 7.1.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 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

Type:DateTime
Aliases:LastWriteTime
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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ę
Type:DisplayHintType
Accepted values:Date, Time, DateTime
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Hour

Określa wyświetlaną godzinę. Wprowadź wartość z zakresu od 0 do 23.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Millisecond

Określa milisekundy w dacie. Wprowadź wartość z zakresu od 0 do 999.

Ten parametr został wprowadzony w programie PowerShell 3.0.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Minute

Określa wyświetlaną minutę. Wprowadź wartość z zakresu od 0 do 59.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Month

Określa wyświetlany miesiąc. Wprowadź wartość z zakresu od 1 do 12.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Second

Określa sekundę, która jest wyświetlana. Wprowadź wartość z zakresu od 0 do 59.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UFormat

Wyświetla datę i godzinę w formacie system 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.

Gdy parametr UFormat 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.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:Int64
Aliases:UnixTime
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Year

Określa wyświetlany rok. Wprowadź wartość z zakresu od 1 do 9999.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 11.

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 Wieku 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
%F Data w formacie RRRR-mm-dd, 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 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 (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 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

-UFormat %s Zachowanie funkcji 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).