Введение в дату и время в Rust
Дата и время в программе нужны для паузы, замера куска кода и календарного дня: дедлайна, расписания, отчета. Это разные вещи. Пауза отвечает на вопрос, сколько ждать. Календарный день отвечает, какое число на календаре.
В стандартной библиотеке есть интервал, отметка монотонных часов и часы системы. Интервал задают секундами или миллисекундами. Отметка идет только вперед и годится для замера. Часы системы показывают момент операционной системы и сами не отдают год, месяц и день. Тем же интервалом в следующем разделе ограничивают ожидание асинхронной задачи.
Календарную дату берут из крейта. В разделе сначала идут интервал, отметка, ожидание и часы системы. Затем дату собирают из чисел, разбирают текст, печатают по шаблону, сдвигают на несколько суток, сравнивают два дня и смотрят один момент в UTC и со сдвигом пояса.
Там, где дата может не получиться, исход
разбирают через if let или match,
без принудительного извлечения из пустого
варианта.