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>]
   [-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

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 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 jest używanych 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 Format 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ę 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.

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 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 , 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 datetime obiektów mogą być niedostępne.

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 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 jest 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 zwraca obiekt ciągu.

specyfikatory UFormat są poprzedzone znakiem procentu (%), na przykład %m, %di %Y. Sekcja Notes zawiera tabelę prawidłowych specyfikatorów formatu UFormat .

Gdy jest używany parametr formatu UFormat , 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 datetime obiektów mogą być niedostępne.

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

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, które oczekuje danych wejściowych ciągu, program PowerShell konwertuje obiekt na obiekt String.

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 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 formatu UFormat są wyświetlane w poniższej tabeli:

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 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 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).