Get-Date

Pobiera bieżącą datę i godzinę lub formatuje datę.

Get-Date to wbudowany cmdlet PowerShella, który zwraca obiekt DateTime z bieżącą datą i godziną systemową. W praktyce używasz go do dwóch rzeczy: żeby sprawdzić aktualny czas oraz żeby ten czas (albo dowolną inną datę) sformatować pod nazwę pliku, log, znacznik czasu czy raport. Kluczowe jest to, że bez parametru formatującego dostajesz pełnoprawny obiekt, na którym możesz dalej liczyć (dodawać dni, porównywać), a nie zwykły tekst.

Składnia i najważniejsze opcje

Podstawowa składnia: Get-Date [[-Date] ] [-Format ]

  • -Date — data wejściowa do przetworzenia zamiast „teraz”, np. -Date "2026-12-24". Jest pozycyjny, więc często pomijasz nazwę parametru.
  • -Format — formatuje wynik wg specyfikatorów .NET (yyyy-MM-dd, HH:mm:ss) i zwraca string, nie obiekt.
  • -UFormat — formatowanie w stylu uniksowym ze znakiem procenta (%Y, %m, %d). Działa zupełnie inaczej niż -Format.
  • -AsUTC — przelicza wartość na czas UTC (przydatne w logach i systemach rozproszonych).
  • -DisplayHint — kontroluje, co pokazać przy domyślnym wyświetlaniu: Date, Time lub DateTime.
  • -Year, -Month, -Day, -Hour, -Minute, -Second — podmieniają pojedyncze składowe bieżącej daty bez ruszania reszty.

Przykłady użycia

  • Get-Date — zwraca pełny obiekt z bieżącą datą i godziną w formacie regionalnym systemu.
  • Get-Date -Format "yyyy-MM-dd HH:mm:ss" — czytelny znacznik czasu, idealny do logów i nazw plików.
  • Get-Date -Date "2026-12-24" -Format "dddd" — sprawdza, w jaki dzień tygodnia wypada podana data.
  • (Get-Date).AddDays(7) — bierze obiekt i dolicza 7 dni; działa, bo nie spłaszczyłeś go do tekstu.
  • Get-Date -UFormat "%Y-%m-%d" — ten sam dzień, ale w notacji uniksowej z procentami.

Częste błędy i pułapki

Najczęstsza wpadka: mylenie -Format z -UFormat. To dwa różne światyyyyy należy do -Format, a %Y do -UFormat; wymieszanie ich daje albo śmieci, albo dosłownie wypisany tekst. Druga pułapka: gdy użyjesz -Format, dostajesz string, więc (Get-Date -Format "yyyy").AddDays(1) wywali błąd — najpierw licz na obiekcie, formatuj na końcu. Pamiętaj też, że HH to format 24-godzinny, a hh 12-godzinny (bez tt nie odróżnisz rana od wieczora). I uważaj na strefy: domyślnie dostajesz czas lokalny — jeśli zapisujesz daty na serwerach w różnych strefach, używaj -AsUTC, żeby uniknąć przesunięć.

Powiązane komendy: Set-Date (ustawia zegar systemowy), New-TimeSpan (różnica między datami), Measure-Command (pomiar czasu wykonania), a w stylu uniksowym odpowiednikiem jest po prostu date.