Для работы с датой и временем в C# предназначена структура DateTime
. Структура DateTime
для представления даты и времени использует 64-битное беззнаковое целое число (UInt64
). Два старших бита используются для представления перечисления DateTimeKind
, 62 оставшихся бита этого числа содержат количество тактов прошедших с полуночи в 24:00:00, 1 января 0001.
Вот как это значение представлено в исходном коде .net:
namespace System { // Здесь опущены атрибуты структуры DateTime // и реализуемые интерфейсы. public struct DateTime { private UInt64 dateData; } }
Следующий пример инициализирует новую переменную DateTime
и выводит в консоль ее значение:
using System; class Program { static void Main() { DateTime dateTime = new DateTime(); Console.WriteLine(dateTime); // Вывод: 01.01.0001 0:00:00 } }
Получение текущей даты и времени
Текущая дата и время в C# могут быть получены при помощи статического свойства DateTime.Now
. Следующий пример выводит текущую дату и время на консоль:
using System; class Program { static void Main() { DateTime dateTime; // Получение текущей даты и времени dateTime = DateTime.Now; Console.WriteLine(dateTime); // Вывод: 01.01.0001 0:00:00 } }
Метод DateTime.ToString()
Для форматирование экземпляров структуры DateTime
может использоваться метод ToString()
, который поможет вывести строковое представление даты и времени в нужном виде. Следующий код выводит текущую дату и время в разных форматах, использую метод DateTime.ToString()
:
static void Main( string[] args ) { DateTime dateTime = DateTime.Now; Console.WriteLine( dateTime.ToString( "dd.MM.yyyy" ) ); Console.WriteLine( dateTime.ToString( "HH:mm:ss" ) ); // Вывод: // 04.01.2020 // 17:31:18 Console.ReadKey(); }
В следующей таблице представлены различные элементы формата даты и времени:
Описатель формата | Описание |
---|---|
d (dd) | выводит день месяца от 1 до 31 ( от 01 до 31 ) |
ddd | выводит день недели в сокращенном формате - например: пн, вт |
dddd | выводит день недели в полном формате - например: понедельник, вторник |
H (HH) | выводит час в 24-м формате, соответствующий текущему экземпляру DateTime от 0 до 23 (от 00 до 23) |
m (mm) | выводит минуты от 0 до 59 ( от 00 до 59 ) |
M ( MM ) | выводит месяц от 1 до 12 ( от 01 до 12 ) |
MMM | выводит сокращенное название месяца, например - янв |
MMMM | выводит полное название месяца, например - января |
s (ss) | выводит секунды от 0 до 59 ( от 00 до 59 ) |
yy (yyyy) | выводит год в двухзначном формате ( или четырехзначном формате ) |
Другие допустимые строковые форматы даты и времени можно посмотреть здесь.