Дата и время в C#. Структура DateTime

Для работы с датой и временем в 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)выводит год в двухзначном формате ( или четырехзначном формате )

Другие допустимые строковые форматы даты и времени можно посмотреть здесь.

avatar
5000
  Подписаться  
Уведомление о