Создание DateTimes
Now, Today и конкретные даты.
«Создание DateTimes» — бесплатный урок C# Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C# Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C# Academy содержит 4 уроков всего.
Знакомство с DateTime
В C# структура DateTime представляет один момент времени, включая дату и время суток.
Она находится в пространстве имён System, поэтому доступна в каждой программе. Вы будете использовать её для дней рождения, временных отметок, сроков и многого другого.
Значение DateTime содержит год, месяц, день, час, минуту, секунду и даже доли секунды.
DateTime.Now
Самый простой способ получить текущие дату и время — DateTime.Now. Этот вызов считывает показания локальных часов компьютера.
При каждом вызове Вы получаете новый снимок текущего момента. Поскольку результат зависит от времени выполнения, выведенное значение каждый раз меняется.
using System;
class Program
{
static void Main()
{
DateTime now = DateTime.Now;
Console.WriteLine(now);
}
}Сегодняшняя дата
Если Вас интересует только дата, а не время, используйте DateTime.Today. Этот вызов возвращает полночь (00:00:00) текущего дня.
Это удобно при сравнении дней, поскольку временная часть устанавливается в ноль.
using System;
class Program
{
static void Main()
{
DateTime today = DateTime.Today;
Console.WriteLine(today.Year);
}
}Время UTC
Компьютеры по всему миру используют UTC (всемирное координированное время). Используйте DateTime.UtcNow, чтобы получить текущее время в UTC без привязки к местному часовому поясу.
UTC — безопасный выбор для серверов и хранения временных отметок, которые будут считывать в разных регионах.
using System;
class Program
{
static void Main()
{
DateTime utc = DateTime.UtcNow;
Console.WriteLine(utc.Kind);
}
}Создание определённой даты
Чтобы создать точную дату, используйте конструктор new DateTime(year, month, day). Временная часть по умолчанию устанавливается в полночь.
Это идеально подходит для фиксированных дат, например праздника или дня запуска. Поскольку значение фиксировано, вывод полностью предсказуем.
using System;
class Program
{
static void Main()
{
DateTime launch = new DateTime(2024, 1, 15);
Console.WriteLine(launch.ToString("yyyy-MM-dd"));
}
}Добавление времени суток
Расширенная версия конструктора позволяет задать часы, минуты и секунды: new DateTime(year, month, day, hour, minute, second).
Часы указываются в 24-часовом формате, поэтому 14 означает 2 PM. Так Вы получаете полную временную отметку с точностью до секунды.
using System;
class Program
{
static void Main()
{
DateTime meeting = new DateTime(2024, 3, 5, 14, 30, 0);
Console.WriteLine(meeting);
}
}Чтение отдельных частей
Получив значение DateTime, можно прочитать каждую его часть через свойства: Year, Month, Day, Hour, Minute и Second.
Они возвращают обычные целые числа, поэтому их легко выводить или сравнивать.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5, 14, 30, 0);
Console.WriteLine(d.Month);
Console.WriteLine(d.Hour);
}
}День недели
Свойство DayOfWeek сообщает, на какой день недели приходится дата. Оно возвращает значение перечисления DayOfWeek, например Monday или Saturday.
Существует также DayOfYear — целое число от 1 до 366.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 1, 1);
Console.WriteLine(d.DayOfWeek);
}
}Минимальное и максимальное значения
У DateTime есть две специальные константы. DateTime.MinValue — это 1 января первого года, а DateTime.MaxValue — 31 декабря 9999 года.
Они полезны как значения по умолчанию или специальные маркеры, когда настоящая дата ещё не задана.
using System;
class Program
{
static void Main()
{
Console.WriteLine(DateTime.MinValue);
Console.WriteLine(DateTime.MaxValue.Year);
}
}Разбор строки с датой
В тексте, полученном от пользователя или из файла, часто содержится дата. DateTime.Parse преобразует строку в значение DateTime.
Если текст не содержит допустимую дату, Parse выдаёт ошибку. Для более безопасной обработки можно использовать DateTime.TryParse: этот метод возвращает значение «истина» или «ложь», а не приводит к аварийному завершению программы.
using System;
class Program
{
static void Main()
{
DateTime d = DateTime.Parse("2024-07-04");
Console.WriteLine(d.Year);
}
}Безопасный разбор с помощью TryParse
DateTime.TryParse позволяет избежать исключений. Он принимает текст и переменную out, возвращая true при успешном выполнении.
Это рекомендуемый способ обработки непредсказуемых входных данных, например значения, введённого пользователем.
using System;
class Program
{
static void Main()
{
bool ok = DateTime.TryParse("not a date", out DateTime result);
Console.WriteLine(ok);
}
}Быстрая проверка
Вам нужна только текущая дата без компонента времени (полночь). Какой вызов следует использовать?
Итоги
Вы научились создавать значения DateTime. Используйте DateTime.Now для получения текущего местного времени, DateTime.Today — для полуночи текущего дня, а DateTime.UtcNow — для всемирного времени.
Создавайте фиксированные даты с помощью new DateTime(...), читайте их части через Year, Month и DayOfWeek, а текст преобразуйте с помощью Parse или более безопасного TryParse.
Часто задаваемые вопросы
Урок «Создание DateTimes» бесплатный?
Да — полный текст урока «Создание DateTimes» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C# Academy, подпишись на CoddyKit PRO. Курс C# Academy содержит 4 уроков всего.
Чему я научусь в уроке «Создание DateTimes»?
Now, Today и конкретные даты. Ты практикуешь C# Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать C# Academy?
Предыдущий опыт не требуется. C# Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Создание DateTimes»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке C# Academy?
Да. Каждый урок C# Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Создание DateTimes
- Форматирование дат
- TimeSpan и длительности
- Арифметика дат