PowerShell poate face o mulțime de lucruri și, ca orice limbaj de programare, se poate face doar despre orice vrei cu datele. Folosind comanda PowerShell Get-Date și alte tehnici, puteți găsi data de astăzi, data de mâine, datele de format și multe altele.

în acest articol, veți afla totul despre date și PowerShell!,

Cuprins

Premise

Pentru a urmări, împreună cu exemple în acest articol, vă rugăm să vă asigurați-vă că aveți următoarele cerințe îndeplinite înainte de timp:

  • Windows PowerShell v5 sau mai sus – Chiar dacă utilizați o versiune anterioară, toate exemplele vor mai lucra, probabil, bine.

găsirea datei curente cu PowerShell

una dintre cele mai simple modalități de a descoperi data curentă cu PowerShell este folosindGet-Date cmdlet. Această comandă afișează data și ora curente așa cum se arată mai jos.,

PS> Get-DateSunday, November 22, 2020 1:25:57 AM

în mod implicit, Get-Date se pare că numai returnează data și ora curentă, dar, în realitate, este de fapt revenirea mult mai multe informații. Pentru a găsi această conductă de informații de ieșire la Format-List cmdlet așa cum se arată mai jos.

de asemenea, puteți folosi Get-Member cmdlet-ul pentru a găsi toate proprietățile obiectului de funcționare Get-Date | Get-Member -MemberType Properties, de asemenea,.,

Dacă tu a verifica tipul de obiect Get-Date se întoarce, veți observa că e un System.DateTime tip de obiect. Această clasă este ceea ce expune toate proprietățile și metodele diferite pe care le vedeți. Puteți descoperi tipul de obiect folosind Get-Member sau folosind GetType() așa cum se arată mai jos.

PS> (Get-Date).GetType().FullNameSystem.DateTime

după ce vedeți toate proprietățile disponibile pe care le aveți la dispoziție, le puteți referi apoi cu notație punct așa cum se arată mai jos.,

PS> (Get-Date).Year2020PS> (Get-Date).DayOfWeekSundayPS> (Get-Date).Month11PS> (Get-Date).DayOfYear327

este notația dot un pic prea” devvy ” pentru tine? Dacă da, puteți utiliza și parametrul DisplayHint pentru a obține același rezultat.

folosind Get-Date este cel mai simplu mod de a găsi data curentă și diverse atribute, dar puteți face mult mai mult!

Data aritmetică cu PowerShell

Să presupunem că trebuie să știți data și/sau ora unui anumit număr de zile, ani sau minute în trecut sau în viitor. Puteți găsi aceste informații folosind metode.,

Utilizarea DateTime Metode

System.DateTime obiect care Get-Date returnare a diverse metode pe care le pot invoca pentru a adăuga sau elimina porțiuni de timp. Dacă executați Get-Date | Get-Member, veți vedea diferite metode care încep cu Add.

AddDays Method datetime AddDays(double value)AddHours Method datetime AddHours(double value)AddMilliseconds Method datetime AddMilliseconds(double value)AddMinutes Method datetime AddMinutes(double value)AddMonths Method datetime AddMonths(int months)AddSeconds Method datetime AddSeconds(double value)AddTicks Method datetime AddTicks(long value)AddYears Method datetime AddYears(int value)

puteți apela fiecare dintre aceste metode pentru a găsi o dată/oră în viitor sau în trecut. Mai jos veți vedea câteva exemple de invocare a fiecăreia dintre aceste metode și de ieșire a acestora.,ce se întâmplă dacă ai vrut să știi diferența dintre două date; nu doar adăugarea unui anumit număr de bucăți de timp? O modalitate de a face acest lucru este de a utiliza New-Timespan cmdlet. New-Timespan cmdlet generează TimeSpan obiecte care reprezintă data/ora diferențe sau deschideri.

Utilizare New-TimeSpan cmdlet prin furnizarea de un Start și End data/ora ca parametri., De exemplu, dacă doriți să găsiți diferența între 23 Noiembrie 2020 la miezul nopții până la 31 decembrie 2020 la miezul nopții, puteți utiliza următorul fragment de cod.

folosindTimeSpan obiecte, puteți găsi diferențele de dată / oră în aproape orice creștere doriți.

compararea datelor

nu numai că puteți găsi diferențe în date și ore, dar le puteți compara și folosind operatorii standard PowerShell. PowerShell știe când o dată este „mai mică decât „(mai devreme decât) sau „mai mare decât” (mai târziu decât) o altă dată.,

Pentru a compara datele, pur și simplu a crea două DateTime obiecte folosind Get-Date sau poate prin turnare siruri de caractere cu și apoi folosind standard PowerShell operatorii, cum ar fi lt sau gt.

puteți vedea un exemplu simplu de comparare a datelor de mai jos.

#Declaring the datePS> $Date1 = (Get-Date -Month 11 -Day 14 -Year 2020)PS> $Date2 = Get-DatePS> $Date1 -lt $Date2True

conversia (turnare) siruri de caractere pentru obiecte DateTime

PowerShell poate afișa, de asemenea, datele în diferite formate., De exemplu, să presupunem că aveți un fișier CSV sau o foaie de calcul cu diferite date definite în formatul pe care îl vedeți mai jos în coloana date_time_utc. Formatul este în prezent YYYY-MM-DDThh:mm:ss.0000000Z.

doriți să analizați acest fișier și să găsiți toate rândurile cu o dată de șapte zile sau mai mare.

Formatul Datei Exemplu

PowerShell, implicit, nu știe că 2020-09-07T13:35:08.4780000Z este o dată și timp; se crede că e vorba de un simplu șir de caractere., Pentru a face PowerShell înțelege, trebuie mai întâi să-l convertească la un DateTime obiect ca Get-Date se întoarce.

Pentru a arunca un șir de caractere de la un DateTime obiect, prefață șir (sau variabilă) cu . Când faceți acest lucru, PowerShell încearcă să interpreteze șirul ca dată și oră, apoi vă oferă toate proprietățile și metodele disponibile pentru acest tip de obiect.,

PS> $Date = "2020-09-07T13:35:08.4780000Z"PS> $DateMonday, September 07, 2020 1:35:08 PM

formatarea datei PowerShell

acum că sunteți la curent cu metodele de bază de utilizare a datelor, este timpul să aprofundați mai mult subiectul. Să ne jucăm un pic mai mult folosind diferite formate pentru a afișa datele.

ori de câte ori rula Get-Date, veți vedea o ieșire ca Monday, September 07, 2020 1:35:08 PM. Această ieșire este de fapt un obiect DateTime cu proprietăți și metode; nu un șir simplu., Dar, puteți converti acest obiect DateTime într-un șir și îl puteți reprezenta diferit folosind diferite metode de formatare a datei.o modalitate de a schimba modul în care este afișat un obiect DateTime este folosind metode pe obiectul DateTime., DateTime obiect are patru metode pe care le puteți folosi pentru a schimba formatarea:

  • ToLongDateString()
  • ToShortDateString()
  • ToLongTimeString()
  • ToShortTimeString()

puteți vedea un exemplu de utilizare a ToShortDateString() și ToShortTimeString() metodele de mai jos.,

PS> $Date = $DatePS> $date.ToShortDateString() + " " + $date.ToShortTimeString()9/7/2020 7:05 PM

Parametrul Format

O modalitate de a schimba formatul de dată de un DateTime object este folosind Get-Date pentru a genera obiect și Format parametru pentru a schimba formatul. Parametrul Format acceptă un șir de caractere fiecare reprezentând modul în care ar trebui să arate un șir de date/oră.

puteți vedea câteva exemple de caractere pe care le puteți utiliza cu parametrul Format.,

a Verifica afară de documentația Microsoft pentru o defalcare completă a toate caracterele pe care le puteți utiliza cu Format parametru.

Veți vedea cât de repede puteți utiliza Format parametru, Get-Date nu mai revine un DateTime obiect dar acum siruri de caractere un șir de caractere.,

PS> (Get-Date -Format D).GetType().FullNameSystem.String

De UFormat Parametrul

Similar cu Format parametru, aveți, de asemenea, un UFormat parametru cu Get-Date cmdlet. Parametrul UFormat vă permite să definiți formate de date utilizând formatarea datei Unix.

UFormat parametru este similar cu Format parametru în care puteți combina data format caractere pentru a schimba modul în care data este returnat ca un șir de caractere. De exemplu, încercați următoarele formate și vedeți ce s-a returnat.,

PS> Get-Date -UFormat %APS> Get-Date -UFormat %bPS> Get-Date -UFormat %B

de asemenea, puteți combina aceste caractere de format de dată. Fragmentul de cod de mai jos foloseste d, m, și Ycaractere pentru a reveni la data în formatul dd-mm-yyyy and foloseste r personaj să se întoarcă timp de 12 ore format folosind fusul orar t caracter.

PS> Get-Date -UFormat "%d-%m-%Y %r %Z"22-11-2020 06:10:55 PM +05

a Verifica afară de documentația Microsoft pentru o defalcare completă a toate caracterele pe care le puteți utiliza cu UFormat parametru.