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
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 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.
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 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, 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 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 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, 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 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
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.
ToString()
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
.
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).