Powershell Get-Date

PowerShell

Heute behandeln wir das CMDlet Get-Date und ich zeige euch einige, hoffentlich, coole Dinge und was ihr alles damit anstellen könnt.

Wir benötigen das aktuelle Datum und die aktuelle Uhrzeit zB um Logfiles mit einem Datum zu versehen. Oder um zB Dateien zu bekommen die älter als ein bestimmtes Datum sind.

Dazu müssten wir mit dem Datum rechnen können.

Wie das funktioniert zeige ich euch in diesem Beitrag.

Der Einstieg

Also, fangen wir mal klein an und starten die PowerShell ISE auf unserem Rechner.

Als erste geben wir mal folgendes sein

Get-Date

Das sollte uns das aktuelle Datum inklusive der Zeit zurückgeben, sollte dann auch wie folgt aussehen

Mittwoch, 13. November 2013 18:05:37

Sagte ich doch das es ganz einfach ist.


Jetzt möchten wir vielleicht nur den aktuellen Tag, das Jahr oder nur den Monat haben, das sieht dann wie folgt aus

(Get-Date).Day
(Get-Date).Month
(Get-Date).Year

Das sollte dann wie folgt aussehen

13
11
2013

Was hier gleich auffällt das wir nur noch die Zahlen zurückbekommen, dazu später mehr wenn es um die Formatierung geht.


So, und da wir jetzt wissen wie wir das Datum in die Einzelteile zerlegen, denke ich mal können wir das mit der Zeit auch machen.

Also geben wir mal folgendes ein.

(Get-Date).Hour
(Get-Date).Minute
(Get-Date).Second
(Get-Date).Millisecond

Da sollte uns dieses Ergebnis liefern

18
18
33
412

Wir haben sogar die Möglichkeit uns die Millisekunden zu holen.


Aber das war noch nicht alles, vielleicht benötigt ihr auch mal die Zeit in ganzen Zahlen, dann probiert mal folgendes.

(Get-Date).TimeOfDay

Das liefert folgendes Ergebnis

Days              : 0
Hours             : 18
Minutes           : 20
Seconds           : 3
Milliseconds      : 883
Ticks             : 660038834901
TotalDays         : 0,763933836690972
TotalHours        : 18,3344120805833
TotalMinutes      : 1100,064724835
TotalSeconds      : 66003,8834901
TotalMilliseconds : 66003883,4901

Wie ihr sehen könnt, habt ihr hier die Möglichkeit die Werte in ganzen Zahlen zu erhalten.


Mit diesem Befehl bekommt ihr die ganze Zahl für die Stunden.

(Get-Date).TimeOfDay.TotalHours

Das Ergebnis ist dann folgendes:

18,3856484749444

Das war jetzt mal der Einstieg, jetzt kommen wir zur Formatierung.

Formatierung mit Get-Date

Jetzt kommen wir dazu, das Datum zu formatieren. Es wird Situationen geben wo wir das Datum mal nur in Zahlen benötigen, mal mit ausgeschriebenen Monat, mal das Jahr mit 4 oder 2 Zeichen. Hier zeige ich euch wie das geht.

Jetzt holen wir uns mal den aktuellen Tag, und dieser soll ausgeschrieben sein

Get-Date -format dddd

Ergebnis:

Sonntag


Jedoch liefert folgendes Kommando ein anderes Ergbins

Get-Date -format dd

Ergebnis:

17

Also bekommen wir hiermit den aktuellen Tag im Monat zurück


Bevor ich jetzt noch mehr dieser Beispiele zeige, zeige ich euch in einer Tabelle allen Optionen zur Formatierung und wie das Ergebnis ist.

Zum besseren Verständnis hier das Original Datum laut Get-Date: Sonntag, 17. November 2013 09:29:09

Kommando Beschreibung Sample
Get-Date -Format dddd Name des Tages Sonntag
Get-Date -Format ddd Kurzname des Tages So
Get-Date -Format dd Zahl des Tages im Monat 17
Get-Date -Format d ausgeschrieben Datum 17.11.2013
Get-Date –Format %M Zahl des Monats ohne führende 0 11
Get-Date -Format MM Zahl des Monats mit führend 0 11
Get-Date -Format MMM Kurzname des Monats Nov
Get-Date -Format MMMM Name des Monats November
Get-Date -Format %y Das Jahr ohne Jahrzehnt und ohne führende Null wenn das Jahr nur 1 Stelle hat 13
Get-Date -Format yy Die letzten beiden Stellen des Jahres 13
Get-Date -Format yyyy Das volle Jahr mit 4 Stellen 2013
Get-Date -Format %h Die Stunde im 12h Format ohne führende 0 9
Get-Date -Format hh Die Stunde im 12h Format mit führende 0 09
Get-Date -Format %H Die Stunde im 24h Format ohne führende 0 9
Get-Date -Format HH Die Stunde im 24h Format mit führende 0 09
Get-Date -Format %m Die Minute ohne führende 0 29
Get-Date –Format mm Die Minute mit führende 0 29
Get-Date -Format %s Die Sekunde ohne führende 0 9
Get-Date –Format ss Die Sekunde mit führende 0 09
Get-Date -Format D Sonntag, 17. November 2013
Get-Date -Format f Sonntag, 17. November 2013 09:32
Get-Date -Format F Sonntag, 17. November 2013 09:32:54
Get-Date -Format g 17.11.2013 09:33
Get-Date -Format G 17.11.2013 09:33:29

So, jetzt können wir eigentlich fast alle Varianten darstellen die wir benötigen. Zu beachten ist die Groß- und Kleinschreibung bei einigen Optionen.

Beispiele

Get-Date -Format yy-MM-dd 13-11-17
Get-Date -Format HH:mm 10:38
Get-Date -Format MMM-yy Nov-13

Mit dem Datum rechnen

Jetzt wird’s erst richtiginteressant, wir wissen also nun wie wir das aktuelle Datum mit Get-Date bekommen, und wir wissen wie wir es richtig formatieren.

Und jetzt zeige ich euch wie ihr mit dem Datum rechnen könnt.

Also, bei mir ist es jetzt mittlerweile etwas später geworden, das aktuell Datum lautet: Sonntag, 17. November 2013 15:45:09

ich möchte nun 5 Tage zum aktuellen Datum hinzurechnen, also benutze ich folgendes Kommando.

(Get-Date).AddDays(5)

Das Ergebnis

Freitag, 22. November 2013 15:46:36


Das ganz funktioniert natürlich auch mit Stunden, Tage, Monat, Jahr, Minuten, Sekunden….

Hier mal ein paar Beispiele

(Get-Date).AddHours(5)
(Get-Date).AddMinutes(5)
(Get-Date).AddMonths(5)
(Get-Date).AddYears(1)

Liefern diese Ergebnisse:

Sonntag, 17. November 2013 20:48:44
Sonntag, 17. November 2013 15:53:44
Donnerstag, 17. April 2014 15:48:44
Montag, 17. November 2014 15:48:44


Natürlich könnt ihr mehrere dieser Funktionen kombinieren, hier ein Beispiel

(Get-Date).AddDays(5).AddMonths(2).AddYears(1)

liefert dieses Ergebnis

Donnerstag, 22. Jänner 2015 15:48:31

Selbstverständlich können wir damit auch Minus-Rechnen, einfach vor der Zahl ein “-“ einfügen

(Get-Date).AddDays(-5)

liefert uns folgendes

Dienstag, 12. November 2013 15:56:40


Zum Schluss kombinieren wir nun das Formatieren und das Rechnen.

Folgendes Kommando rechnet ein Monat zurück und gibt nur das Monat aus

Get-Date -format MMMM ((Get-Date).addmonths(-1))

So könnt ihr nun alles kombinieren.

Michael Seidl aka Techguy

3 comments to Powershell Get-Date

Leave a Reply

  

  

  


*