Как конвертировать DateTime? DateTime в C # и как сравнить две даты - PullRequest
0 голосов
/ 15 апреля 2019

Я пытаюсь конвертировать DateTime?значение в значение DateTime.И сравните значение DateTime с DateTime.MaxValue в C #.Хотя значения одинаковы.Я получаю -1 для сравнения DateTime.Я новичок в C #.Где я ошибаюсь в следующем коде?

Я искал и нашел эту связанную ссылку при переполнении стека.Но я не знаю, как это исправить: Как конвертировать DateTime?в DateTime

private DateTime? expires = null;

public DateTime? DateExpires {
    get
    {
         System.Diagnostics.Debug.WriteLine("DateTime Max Value: " + DateTime.MaxValue);
         System.Diagnostics.Debug.WriteLine("Date expires: " + expires);
         System.Diagnostics.Debug.WriteLine("Date expires value: " + expires.Value);

         if (expires.HasValue)
         {
             System.Diagnostics.Debug.WriteLine("I have some value");
             DateTime dtime = expires.Value;
             System.Diagnostics.Debug.WriteLine("Dtime value: " + dtime);

             int result = DateTime.Compare(dtime, DateTime.MaxValue);
             System.Diagnostics.Debug.WriteLine("Compared result: " + result);

         } else
         {    
             System.Diagnostics.Debug.WriteLine("I don't have any value");
         }

         return expires.Value;
     }
     set
     {
          expires = value;
     } 
}

Вот мои результаты для кода:

DateTime Max Value: 12/31/9999 11:59:59 PM
Date expires: 12/31/9999 11:59:59 PM
Date expires value: 12/31/9999 11:59:59 PM
I have some value
Dtime value: 12/31/9999 11:59:59 PM
Compared result: -1

Обновление:

В одном из методов значение expires установлено

_model.expires = _model.expires != null ? _model.expires.Value : DateTime.MaxValue;

1 Ответ

2 голосов
/ 15 апреля 2019

Дата-время в некотором роде отличается. Может быть на миллисекундном уровне? Может быть, TimeZone или UTC.

Они определенно разные, так или иначе. Обнуляемые datetime возвращают объект DateTime в свойстве Value, поэтому преобразование не требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...