Разница между System.DateTime.Now и System.DateTime.Today

Какая разница между System.DateTime.Now и System.DateTime.Today? Вроде как и то и другое показывает текущую дату, между тем какая то между ними разница определённо есть. Что это?

DateTime.Now возвращает значение DateTime, которое состоит из локальной даты и времени компьютера, на котором выполняется код. Он имеет DateTimeKind.Local, присвоенный свойству Kind. Это эквивалентно вызову любого из следующего:

  • DateTime.UtcNow.ToLocalTime()
  • DateTimeOffset.UtcNow.LocalDateTime
  • DateTimeOffset.Now.LocalDateTime
  • TimeZoneInfo.ConvertTime(DateTime.UtcNow, TimeZoneInfo.Local)
  • TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, TimeZoneInfo.Local)

DateTime.Today возвращает значение DateTime, которое имеет те же компоненты year, month и day как любое из приведенных выше выражений, но с компонентами времени, установленными на ноль. Он также имеет DateTimeKind.Local в свойстве Kind. Это эквивалентно любому из следующих:

  • DateTime.Now.Date
  • DateTime.UtcNow.ToLocalTime().Date
  • DateTimeOffset.UtcNow.LocalDateTime.Date
  • DateTimeOffset.Now.LocalDateTime.Date
  • TimeZoneInfo.ConvertTime(DateTime.UtcNow, TimeZoneInfo.Local).Date
  • TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, TimeZoneInfo.Local).Date