0Pricing
C# Academy · Урок

Форматирование дат

Пользовательские и стандартные форматы.

«Форматирование дат» — бесплатный урок C# Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C# Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C# Academy содержит 4 уроков всего.

Зачем форматировать даты

Необработанное значение DateTime выводится с использованием стандартной культуры Вашего компьютера, что может быть нежелательно.

Форматирование позволяет точно управлять отображением даты: 2024-03-05, 05/03/2024 или Tuesday, March 5. В C# доступны стандартные и пользовательские строки формата.

ToString с шаблоном

Самый гибкий инструмент — ToString с пользовательской строкой формата. Каждая буква обозначает часть даты.

Например, "yyyy-MM-dd" создаёт представление «год-месяц-день», которое удобно сортировать и легко читать.

using System;

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

Буквы года, месяца и дня

Регистр букв формата имеет значение. yyyy означает четырёхзначный год, MM — двузначный месяц, а dd — двузначный день.

Используйте заглавную M для месяца, а строчная m означает минуты. Их смешение — распространённая ошибка начинающих.

using System;

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

Часы, минуты и секунды

Для части, обозначающей время, HH задаёт 24-часовой формат, mm — минуты, а ss — секунды.

Строчные hh задают 12-часовой формат и используются вместе с tt для обозначения AM или 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"));
    }
}

12-часовой формат с AM/PM

Чтобы вывести время в удобном 12-часовом формате, объедините hh:mm с tt. Спецификатор tt выводит AM или PM.

Так время 14:30 превращается в 02:30 PM, что многим читателям понятнее, чем значение в 24-часовом формате.

using System;

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

Названия месяцев и дней

Вместо чисел можно выводить названия. MMMM задаёт полное название месяца, а MMM — сокращённое.

Для дней недели dddd задаёт полное название дня, а ddd — сокращение.

using System;

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

Стандартные спецификаторы формата

Помимо пользовательских шаблонов, C# предлагает короткие стандартные коды. "d" — краткая дата, "D" — полная дата, "t" — краткое время, а "T" — полное время.

Они зависят от текущей культуры, поэтому точный вид может различаться в разных регионах.

using System;

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

Краткие и подробные вспомогательные методы

Также есть удобные методы. ToShortDateString и ToShortTimeString дают краткий вывод, а ToLongDateString записывает дату полностью.

Они удобны для быстрого использования, но для полного контроля лучше задавать строку формата явно.

using System;

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

Форматирование в интерполяции

Внутри интерполированной строки формат можно указать после двоеточия. Запись {d:yyyy-MM-dd} форматирует значение непосредственно в месте его подстановки.

Это позволяет сохранять код коротким и понятным при формировании сообщений.

using System;

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

Вывод, не зависящий от региональных настроек

Для данных, которые Вы сохраняете или передаёте между системами, используйте форматирование с помощью CultureInfo.InvariantCulture, чтобы результат никогда не зависел от региональных настроек пользователя.

Это предотвращает неожиданности, когда один и тот же код выводит разные результаты на другом компьютере.

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));
    }
}

Формат обратного преобразования

Стандартный формат "o" (обратного преобразования) выводит строку в формате ISO 8601, сохраняя все детали, включая доли секунды.

Это самый надёжный вариант, когда дату позже нужно снова разобрать без потери точности.

using System;

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

Быстрая проверка

Вам нужно вывести месяц двумя цифрами в пользовательской строке формата. Какой спецификатор выбрать?

Итоги

Форматировать даты можно с помощью ToString и пользовательских шаблонов, таких как yyyy, MM, dd, HH и mm.

Стандартные коды, например "d" и "D", зависят от культуры, а InvariantCulture и формат обратного преобразования "o" обеспечивают стабильный вывод в разных системах.

Часто задаваемые вопросы

Урок «Форматирование дат» бесплатный?

Да — полный текст урока «Форматирование дат» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C# Academy, подпишись на CoddyKit PRO. Курс C# Academy содержит 4 уроков всего.

Чему я научусь в уроке «Форматирование дат»?

Пользовательские и стандартные форматы. Ты практикуешь C# Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать C# Academy?

Предыдущий опыт не требуется. C# Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Форматирование дат»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке C# Academy?

Да. Каждый урок C# Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Создание DateTimes
  2. Форматирование дат
  3. TimeSpan и длительности
  4. Арифметика дат
← Назад к C# Academy