Sdílet prostřednictvím


Get-Date

Získá aktuální datum a čas.

Syntaxe

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

Description

Rutina Get-Date získá objekt DateTime , který představuje aktuální datum nebo zadané datum. Get-Date může formátovat datum a čas v několika formátech .NET a UNIX. Můžete použít Get-Date k vygenerování řetězce znaků data nebo času a následnému odeslání řetězce do jiných rutin nebo programů.

Get-Date používá aktuální nastavení jazykové verze operačního systému k určení způsobu formátování výstupu. Chcete-li zobrazit nastavení počítače, použijte (Get-Culture).DateTimeFormat.

Příklady

Příklad 1: Získání aktuálního data a času

V tomto příkladu Get-Date zobrazí aktuální systémové datum a čas. Výstup je ve formátech s dlouhým datem a dlouhým časem.

Get-Date

Tuesday, June 25, 2019 14:53:32

Příklad 2: Získání prvků aktuálního data a času

Tento příklad ukazuje, jak získat Get-Date prvek data nebo času. Parametr používá argumenty Date, Time nebo DateTime.

Get-Date -DisplayHint Date

Tuesday, June 25, 2019

Get-Date pomocí parametru DisplayHint s argumentem Date získá pouze datum.

Příklad 3: Získání data a času pomocí specifikátoru formátu .NET

V tomto příkladu se k přizpůsobení formátu výstupu používá specifikátor formátu .NET. Výstupem je objekt String .

Get-Date -Format "dddd MM/dd/yyyy HH:mm K"

Tuesday 06/25/2019 16:17 -07:00

Get-Datepoužívá parametr Format k určení několika specifikátorů formátu.

Specifikátory formátu .NET použité v tomto příkladu jsou definovány takto:

Specifikátor Definice
dddd Den v týdnu – celé jméno
MM Číslo měsíce
dd Den v měsíci – 2 číslice
yyyy Rok ve 4ciferném formátu
HH:mm Čas ve 24hodinovém formátu – bez sekund
K Posun časového pásma od souřadnic univerzálního času (UTC)

Další informace o specifikátorech formátu .NET naleznete v tématu Vlastní řetězce formátu data a času.

Příklad 4: Získání data a času pomocí specifikátoru UFormat

V tomto příkladu se k přizpůsobení formátu výstupu používá několik specifikátorů formátu UFormat . Výstupem je objekt String .

Get-Date -UFormat "%A %m/%d/%Y %R %Z"

Tuesday 06/25/2019 16:19 -07

Get-Datepoužívá parametr UFormat k určení několika specifikátorů formátu.

Specifikátory formátu UFormat použité v tomto příkladu jsou definovány takto:

Specifikátor Definice
%A Den v týdnu – celé jméno
%m Číslo měsíce
%d Den v měsíci – 2 číslice
%Y Rok ve 4ciferném formátu
%R Čas ve 24hodinovém formátu – bez sekund
%Z Posun časového pásma od souřadnic univerzálního času (UTC)

Seznam platných specifikátorů formátu UFormat najdete v části Poznámky .

Příklad 5: Získání data v roce

V tomto příkladu se vlastnost používá k získání číselného dne v roce.

Gregoriánský kalendář má 365 dní s výjimkou přestupné roky, které mají 366 dní. Například 31. prosince 2020 je den 366.

(Get-Date -Year 2020 -Month 12 -Day 31).DayOfYear

366

Get-Date používá tři parametry k určení data: Year, Month a Day. Příkaz je zabalen s závorky tak, aby výsledek byl vyhodnocen vlastností DayofYear .

Příklad 6: Kontrola, jestli je datum upravené pro letní čas

Tento příklad používá logickou metodu k ověření, jestli je datum upraveno letním časem.

$DST = Get-Date
$DST.IsDaylightSavingTime()

True

Proměnná ukládá $DST výsledek Get-Date. $DST používá metodu IsDaylightSavingTime k otestování, zda je datum upraveno pro letní čas.

Příklad 7: Převod aktuálního času na čas UTC

V tomto příkladu se aktuální čas převede na čas UTC. Posun UTC pro národní prostředí systému se používá k převodu času. Tabulka v části Poznámky obsahuje platné specifikátory formátu 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-Datepoužívá parametr UFormat se specifikátory formátu k zobrazení aktuálního systémového data a času. Specifikátor formátu %Z představuje posun UTC - 07.

Proměnná $Time ukládá aktuální systémové datum a čas. $Time používá metodu ToUniversalTime() k převodu času na základě posunu UTC počítače.

Příklad 8: Vytvoření časového razítka

V tomto příkladu specifikátor formátu vytvoří objekt String časového razítka pro název adresáře. Časové razítko zahrnuje datum, čas a posun 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

Proměnná $timestamp ukládá výsledky Get-Date příkazu. Get-Datepoužívá format parametr se specifikátorem formátu malými písmeny o k vytvoření objektu String časového razítka. Objekt se odešle do kanálu do ForEach-Object. ScriptBlock obsahuje proměnnou$_, která představuje aktuální objekt kanálu. Řetězec časového razítka je oddělený dvojtečkami, které jsou nahrazeny tečkami.

New-Itempoužívá parametr Path k určení umístění pro nový adresář. Cesta obsahuje proměnnou $timestamp jako název adresáře. Parametr Type určuje, že se vytvoří adresář.

Příklad 9: Převod časového razítka unixu

Tento příklad převede unixový čas (reprezentovaný počtem sekund od 1970-01-01 01 0:00:00) na DateTime.

Get-Date -UnixTimeSeconds 1577836800

Wednesday, January 01, 2020 12:00:00 AM

Příklad 10: Vrácení hodnoty data interpretovaného jako UTC

Tento příklad ukazuje, jak interpretovat hodnotu data jako ekvivalent UTC. Tento počítač je například nastavený na Tichomoří (Běžný čas). Ve výchozím nastavení Get-Date vrátí hodnoty pro dané časové pásmo. Pomocí parametru AsUTC převeďte hodnotu na ekvivalentní čas 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

Příklad 11: Zobrazení invariantní jazykové verze

Převede ToString() objekt DateTime řetězec pomocí aktuální jazykové verze nastavení. Interpretace výrazů PowerShellu ale vždy používá invariantní jazykové nastavení.

Například v systému s jazykovou en-US verzí ToString() metoda formátuje datum pomocí en-US nastavení jazykové verze.

# 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

Převede hodnotu data na ekvivalentní čas v UTC.

Tento parametr byl představen v PowerShellu 7.1.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Date

Určuje datum a čas. Čas je nepovinný a pokud není zadaný, vrátí hodnotu 00:00:00. Zadejte datum a čas ve formátu, který je standardní pro aktuálně vybrané národní prostředí. Aktuální národní prostředí můžete změnit pomocí rutiny Set-Culture .

Například v angličtině v USA:

Get-Date -Date "6/25/2019 12:30:22" vrátí úterý, červen 25, 2019 12:30:22

Typ:DateTime
Aliasy:LastWriteTime
Position:0
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Day

Určuje den v měsíci, který se zobrazí. Zadejte hodnotu od 1 do 31.

Pokud je zadaná hodnota větší než počet dní v měsíci, PowerShell sčítá počet dní v měsíci. Například Get-Date -Month 4 -Day 31 zobrazí 1. května, nikoli 31. dubna.

Typ:Int32
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-DisplayHint

Určuje, které prvky data a času jsou zobrazeny.

Přijaté hodnoty jsou následující:

  • Datum: zobrazí pouze datum.
  • Čas: zobrazí pouze čas.
  • DateTime: zobrazí datum a čas.
Typ:DisplayHintType
Přípustné hodnoty:Date, Time, DateTime
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Format

Zobrazí datum a čas ve formátu rozhraní Microsoft .NET Framework označený specifikátorem formátu. Parametr Format vypíše objekt String .

Seznam dostupných specifikátorů formátu .NET naleznete v tématu Vlastní řetězce formátu data a času.

Při použití Get-Date parametru Format získá pouze vlastnosti objektu DateTime potřebné k zobrazení data. V důsledku toho nemusí být některé vlastnosti a metody objektů DateTime k dispozici.

Počínaje PowerShellem 5.0 můžete jako hodnoty parametru Format použít následující další formáty.

  • FileDate. Soubor nebo popisná cesta k aktuálnímu datu v místním čase. Formát je yyyyMMdd (rozlišují se malá a velká písmena, s použitím 4místného roku, 2místného měsíce a 2místného dne). Příklad: 20190627.

  • FileDateUniversal. Soubor nebo popisná cesta k aktuálnímu datu v univerzálním čase (UTC). Formát je yyyyMMddZ (rozlišují se malá a velká písmena, s použitím čtyřmístného roku, 2místného měsíce, 2místného dne a písmena Z jako indikátoru UTC). Příklad: 20190627Z.

  • FileDateTime. Soubor nebo reprezentace aktuálního data a času v místním čase ve formátu 24 hodin. Formát je yyyyMMddTHHmmssffff (rozlišují se malá a velká písmena s použitím čtyřmístného roku, 2místného měsíce, 2místného dne, 2místného dne, T oddělovače času, 2místné minuty, dvoumístné sekundy a 4místného milisekundy). Příklad: 20190627T0840107271.

  • FileDateTimeUniversal. Soubor nebo reprezentace aktuálního data a času v univerzálním čase (UTC) ve formátu 24 hodin. Formát je yyyyMMddTHHmmssffffZ (rozlišují se malá a velká písmena, s použitím čtyřmístného roku, 2místného měsíce, 2místného dne, oddělovače času, T 2místné minuty, 2místné minuty, 4místné milisekundy a písmena Z jako indikátor UTC). Například: 20190627T1540500718Z.

Typ:String
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Hour

Určuje hodinu, která se zobrazí. Zadejte hodnotu od 0 do 23.

Typ:Int32
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Millisecond

Určuje milisekundy v datu. Zadejte hodnotu od 0 do 999.

Tento parametr byl představen v PowerShellu 3.0.

Typ:Int32
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Minute

Určuje minutu, která se zobrazí. Zadejte hodnotu od 0 do 59.

Typ:Int32
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Month

Určuje měsíc, který se zobrazí. Zadejte hodnotu od 1 do 12.

Typ:Int32
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Second

Určuje sekundu, která se zobrazí. Zadejte hodnotu od 0 do 59.

Typ:Int32
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-UFormat

Zobrazí datum a čas ve formátu UNIX. Parametr UFormat vypíše objekt string.

Specifikátory UFormat jsou předcházet znakem procenta (%), %mnapříklad , , %da %Y. Oddíl Poznámky obsahuje tabulku platných specifikátorů UFormat.

Při použití parametru UFormat získá pouze vlastnosti objektu DateTime potřebné k zobrazení Get-Date data. V důsledku toho nemusí být některé vlastnosti a metody objektů DateTime k dispozici.

Typ:String
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-UnixTimeSeconds

Datum a čas reprezentované v sekundách od 1. ledna 1970, 0:00:00.

Tento parametr byl představen v PowerShellu 7.1.

Typ:Int64
Aliasy:UnixTime
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Year

Určuje rok, který se zobrazí. Zadejte hodnotu od 1 do 9999.

Typ:Int32
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

Vstupy

DateTime

Do této rutiny můžete přeskakovat objekt DateTime .

Výstupy

DateTime

Ve výchozím nastavení vrátí tato rutina objekt DateTime .

Když je objekt DateTime odeslán kanál do rutiny, jako Add-Content je například očekávaný řetězcový vstup, PowerShell převede objekt na objekt String.

Převede ToString() objekt DateTime na řetězec pomocí aktuální jazykové verze nastavení. Interpretace výrazů PowerShellu ale vždy používá invariantní jazykové nastavení. Pokud chcete zjistit, jak se invariantní jazyková verze liší, podívejte se na příklad 11.

Chcete-li zobrazit vlastnosti a metody objektu, odešlete objekt dolů kanálu do Get-Member. Například Get-Date | Get-Member.

String

Pokud použijete parametry Format nebo UFormat , vrátí tato rutina objekty String .

Poznámky

Výchozí formáty pro výstup objektů DateTime jsou dlouhé a dlouhé formáty pro aktuálně vybrané národní prostředí.

Platné specifikátory UFormat se zobrazují v následující tabulce:

Důležité

Specifikátory UFormat se mění nebo přidávají v novějších verzích PowerShellu. Například %F byl přidán v PowerShellu 6.2, takže není k dispozici ve Windows PowerShellu 5.1 nebo starším. Při použití specifikátorů UFormat ve skriptech navržených ke spuštění ve více verzích PowerShellu mějte na paměti.

Specifikátor formátu Význam Příklad
%A Den v týdnu – celé jméno Pondělí
%a Den v týdnu – zkrácený název Pon
%B Název měsíce – úplný Leden
%b Název měsíce – zkrácený led
%C Století 20 pro 2019
%c Datum a čas – zkrácené Čt 27. června 08:44:18 2019
%D Datum ve formátu mm/dd/rr 06/27/19
%d Den v měsíci – 2 číslice 05
%e Den v měsíci – před mezerou, pokud je pouze jedna číslice <mezera>5
%F Datum ve formátu RRRR-mm-dd, které se rovná %Y-%m-%d (formát data ISO 8601) 2019-06-27
%G Rok data týdne ISO (rok obsahující čtvrtek v týdnu)
%g Stejné jako "G" – 2 číslice
%H Hodina ve formátu 24 hodin 17
%h Stejné jako "b"
%I Hodina ve formátu 12 hodin 05
%j Den v roce 1-366
%k Stejné jako "H"
%l Stejné jako "I" (velká písmena I) 05
%M V řádu minut 35
%m Číslo měsíce 06
%n znak nového řádku
%p DOM nebo PM
%R Čas ve 24hodinovém formátu –bez sekund 17:45
%r Čas ve formátu 12 hodin 09:15:36
%S Sekundy 05
%s Sekundy uplynuly od 1. ledna 1970 00:00:00 (UTC) 1150451174
%t Vodorovný znak tabulátoru
%T Čas ve formátu 24 hodin 17:45:52
%U Stejné jako "W"
%u Číselný den v týdnu (1–7) (změněný v PowerShellu 7.2) Pondělí = 1, neděle = 7
%V Týden v roce 01-53
%w Číselný den v týdnu (0–6) Neděle = 0, sobota = 6
%W Týden v roce 00-52
%X Stejné jako "T"
%x Datum ve standardním formátu národního prostředí 06/27/19 pro angličtinu-USA
%Y Rok ve 4ciferném formátu 2019
%y Rok ve dvouciferném formátu 19
%Z Posun časového pásma od souřadnic univerzálního času (UTC) -07

Poznámka:

Chování -UFormat %s bylo změněno, aby se vyřešilo problémy s chováním v prostředí Windows PowerShell.

  • Vrácená hodnota je založená na čase UTC.
  • Hodnota je celý počet sekund (bez zlomkové části).