0Pricing
C# Academy · Lekcja

Formatowanie dat

Formaty niestandardowe i standardowe.

Formatowanie dat to bezpłatna lekcja C# Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C# Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C# Academy zawiera 4 lekcji w sumie.

Dlaczego formatować daty

Surowa wartość DateTime jest wyświetlana zgodnie z domyślną kulturą komputera, co może nie odpowiadać oczekiwaniom.

Formatowanie pozwala dokładnie określić sposób wyświetlania daty: 2024-03-05, 05/03/2024 lub Tuesday, March 5. C# udostępnia zarówno standardowe, jak i niestandardowe ciągi formatu.

ToString ze wzorcem

Najbardziej elastycznym narzędziem jest ToString z niestandardowym ciągiem formatu. Każda litera oznacza jedną ze składowych daty.

Na przykład "yyyy-MM-dd" tworzy układ rok-miesiąc-dzień, który można łatwo sortować i odczytywać.

using System;

class Program
{
    static void Main()
    {
        DateTime d = new DateTime(2024, 3, 5);
        Console.WriteLine(d.ToString("yyyy-MM-dd"));
    }
}

Symbole roku, miesiąca i dnia

Wielkość liter w symbolach formatu ma znaczenie. yyyy oznacza rok zapisany czterema cyframi, MM — miesiąc zapisany dwiema cyframi, a dd — dzień zapisany dwiema cyframi.

Do oznaczania miesiąca należy używać wielkiej litery M; mała litera m oznacza minuty. Pomylenie tych symboli jest częstym błędem początkujących.

using System;

class Program
{
    static void Main()
    {
        DateTime d = new DateTime(2024, 3, 5);
        Console.WriteLine(d.ToString("dd/MM/yyyy"));
    }
}

Godziny, minuty i sekundy

W części określającej godzinę HH oznacza zegar 24-godzinny, mm — minuty, a ss — sekundy.

Małe litery hh oznaczają zegar 12-godzinny i są używane razem z tt do oznaczenia AM lub PM.

using System;

class Program
{
    static void Main()
    {
        DateTime d = new DateTime(2024, 3, 5, 14, 30, 0);
        Console.WriteLine(d.ToString("HH:mm:ss"));
    }
}

Zegar 12-godzinny z AM/PM

Aby wyświetlić czytelną godzinę w formacie 12-godzinnym, należy połączyć hh:mm z tt. Specyfikator tt wyświetla AM lub PM.

W ten sposób godzina 14:30 zostaje przedstawiona jako 02:30 PM, co dla wielu czytelników jest łatwiejsze do odczytania niż wartość w formacie 24-godzinnym.

using System;

class Program
{
    static void Main()
    {
        DateTime d = new DateTime(2024, 3, 5, 14, 30, 0);
        Console.WriteLine(d.ToString("hh:mm tt"));
    }
}

Nazwy miesięcy i dni

Zamiast liczb można wyświetlać pełne nazwy. MMMM zwraca pełną nazwę miesiąca, a MMM — jej skróconą formę.

W przypadku dni tygodnia dddd oznacza pełną nazwę dnia, a ddd — jej skrót.

using System;

class Program
{
    static void Main()
    {
        DateTime d = new DateTime(2024, 3, 5);
        Console.WriteLine(d.ToString("dddd, MMMM dd"));
    }
}

Standardowe specyfikatory formatu

Oprócz niestandardowych wzorców C# oferuje krótkie standardowe kody. "d" oznacza krótką datę, "D" — długą datę, "t" — krótką godzinę, a "T" — długą godzinę.

Ich działanie zależy od bieżącej kultury, dlatego dokładny wygląd może różnić się w zależności od regionu.

using System;

class Program
{
    static void Main()
    {
        DateTime d = new DateTime(2024, 3, 5, 14, 30, 0);
        Console.WriteLine(d.ToString("D"));
    }
}

Krótkie i pełne metody pomocnicze

Dostępne są również metody pomocnicze. ToShortDateString i ToShortTimeString zwracają krótki zapis, natomiast ToLongDateString rozwija go do pełnej postaci.

Są szybkie w użyciu, ale jeśli potrzebuje Pan/Pani pełnej kontroli, lepiej użyć jawnego ciągu formatującego.

using System;

class Program
{
    static void Main()
    {
        DateTime d = new DateTime(2024, 3, 5);
        Console.WriteLine(d.ToShortDateString());
    }
}

Formatowanie w interpolacji

W interpolowanym ciągu można umieścić format po dwukropku. Zapis {d:yyyy-MM-dd} formatuje wartość bezpośrednio w miejscu jej użycia.

Dzięki temu kod pozostaje krótki i czytelny podczas tworzenia komunikatów.

using System;

class Program
{
    static void Main()
    {
        DateTime d = new DateTime(2024, 3, 5);
        Console.WriteLine($"Date: {d:yyyy-MM-dd}");
    }
}

Wynik niezależny od kultury

W przypadku danych przechowywanych lub przesyłanych między systemami należy użyć formatu z CultureInfo.InvariantCulture, aby wynik nigdy nie zależał od ustawień regionalnych użytkownika.

Zapobiega to sytuacjom, w których ten sam kod wyświetla inną wartość na innym komputerze.

using System;
using System.Globalization;

class Program
{
    static void Main()
    {
        DateTime d = new DateTime(2024, 3, 5);
        Console.WriteLine(d.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture));
    }
}

Format round-trip

Standardowy format "o" (round-trip) tworzy ciąg ISO 8601, który zachowuje wszystkie szczegóły, w tym ułamki sekund.

To najbezpieczniejszy wybór, gdy datę trzeba później ponownie sparsować bez utraty precyzji.

using System;

class Program
{
    static void Main()
    {
        DateTime d = new DateTime(2024, 3, 5, 14, 30, 0);
        Console.WriteLine(d.ToString("o"));
    }
}

Szybkie sprawdzenie

Chce Pan/Pani umieścić miesiąc zapisany dwiema cyframi w niestandardowym ciągu formatującym. Który specyfikator jest poprawny?

Podsumowanie

Daty można formatować za pomocą ToString i niestandardowych wzorców, takich jak yyyy, MM, dd, HH oraz mm.

Standardowe kody, takie jak "d" i "D", uwzględniają kulturę, natomiast InvariantCulture i format round-trip "o" zapewniają stabilny wynik w różnych systemach.

Często zadawane pytania

Czy lekcja „Formatowanie dat” jest bezpłatna?

Tak — pełny tekst „Formatowanie dat” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C# Academy, przejdź na CoddyKit PRO. Kurs C# Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Formatowanie dat”?

Formaty niestandardowe i standardowe. Ćwiczysz C# Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć C# Academy?

Nie wymagamy żadnego doświadczenia. C# Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Formatowanie dat”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji C# Academy?

Tak. Każda lekcja C# Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Tworzenie DateTime
  2. Formatowanie dat
  3. TimeSpan i czas trwania
  4. Operacje na datach
← Powrót do C# Academy