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
- Tworzenie DateTime
- Formatowanie dat
- TimeSpan i czas trwania
- Operacje na datach