Ce face Get-Date
Fără parametri, Get-Date întoarce un obiect DateTime cu data și ora curentă, afișat în formatul lung al culturii sistemului. Cu -Date sau cu -Year, -Month, -Day, -Hour, -Minute construiești o altă dată. Obiectul are proprietăți (Year, Month, Day, DayOfWeek, DayOfYear) și metode de calcul: .AddDays(30), .AddMonths(-1), .AddHours(2). Diferența a două date este un TimeSpan, cu .Days, .TotalHours și altele.
-Format primește un format .NET ('dd.MM.yyyy', 'yyyy-MM-dd HH:mm') sau unul dintre formatele speciale FileDate, FileDateTime (din 5.0), utile în nume de fișiere. -UFormat folosește specificatori Unix (%d.%m.%Y). Ambele întorc text, nu o dată: formatezi la final, după ce ai terminat calculele. -AsUTC (din PowerShell 7.1) convertește în ora UTC, iar -UnixTimeSeconds (tot din 7.1) pornește de la un timestamp Unix.
Accelerarea de tip [datetime] convertește un text în dată folosind cultura invariantă: [datetime]'2026-10-25' funcționează pe orice sistem, dar [datetime]'25.10.2026' nu, pentru că ar fi interpretat ca lună/zi/an. Pentru formatul românesc folosește [datetime]::ParseExact('25.10.2026', 'dd.MM.yyyy', $null).
Parametri
| Parametru | Descriere |
|---|---|
-Date |
Data de pornire (implicit acum). Acceptă și obiecte din pipeline. |
-Year / -Month / -Day |
Înlocuiesc anul, luna, ziua în data rezultată. |
-Hour / -Minute / -Second |
Înlocuiesc ora, minutul, secunda. |
-Format |
Format .NET (dd.MM.yyyy HH:mm) sau FileDate, FileDateTime; întoarce text. |
-UFormat |
Format în stil Unix (%Y-%m-%d); întoarce text. |
-DisplayHint |
Afișează doar Date, doar Time sau DateTime; obiectul rămâne complet. |
-AsUTC |
Convertește rezultatul în UTC (PowerShell 7.1+). |
-UnixTimeSeconds |
Data dată ca secunde de la 1 ianuarie 1970 (PowerShell 7.1+). |
Ce returnează
Un obiect System.DateTime; cu -Format sau -UFormat, un String.
Exemple
Exemplul 1: Formatezi o dată în stil românesc
Textul în format ISO e interpretat la fel pe orice sistem; ieșirea are formatul cerut.
Get-Date -Date '2026-10-25 14:30' -Format 'dd.MM.yyyy HH:mm'
Get-Date -Date '2026-10-25' -UFormat '%d.%m.%Y'
Get-Date -Format FileDate
Ieșire în terminal
25.10.2026 14:30
25.10.2026
20261025
Exemplul 2: Scadența unei facturi cu .AddDays()
Calculezi pe obiectul DateTime și formatezi abia la final.
$factura = Get-Date -Year 2026 -Month 10 -Day 25
$scadenta = $factura.AddDays(30)
$scadenta.ToString('dd.MM.yyyy')
$scadenta.DayOfWeek
Ieșire în terminal
24.11.2026
Tuesday
Exemplul 3: Câte zile au trecut între două date
Scăderea a două date dă un TimeSpan; datele se pot și compara cu -gt.
$start = [datetime]'2026-09-15'
$azi = [datetime]'2026-10-25'
($azi - $start).Days
$azi -gt $start
Ieșire în terminal
40
True
Greșeli frecvente
- Să apelezi
.AddDays()pe rezultatul luiGet-Date -Format: e text, nu dată, deci metoda nu există. Calculează întâi, formatează la sfârșit. - Să scrii
'MM'când vrei minute: în formatele .NETMMe luna,mmminutul;HHe ora în format 24 de ore,hhîn format 12. - Să convertești date românești cu
[datetime]'25.10.2026': conversia folosește cultura invariantă și eșuează. Folosește[datetime]::ParseExact()sau formatul ISOyyyy-MM-dd. - Să compari date ca text (
'10.11.2026' -gt '09.12.2026'): comparația e alfabetică. Compară obiecte[datetime].
Comenzi înrudite
Variabile și tipuri: Variabilele încep cu $, primesc orice obiect .NET și pot fi legate de un tip ([int], [string], [datetime]); .GetType() arată tipul.Operatori de comparație: PowerShell compară cu -eq, -ne, -gt, -lt, -like, -match, -contains, -in, nu cu = sau >; implicit nu ține cont de majuscule.Get-Member: Arată tipul obiectelor dintr-un pipeline și ce proprietăți și metode au, ca să știi ce poți selecta, filtra sau apela.New-Item: Creează un fișier, un folder sau un link; poate pune și conținut inițial în fișierul nou.