Плохое преобразование из EndOfTheMonth(date) в значение Variant

У меня есть значение TDateTime(которое я получаю в результате EndOfTheMonth(date)) для типа варианта. Результат неправильно округлен. Давайте посмотрим на пример:

  data := EndOfTheMonth(date);
  V := data;
  ShowMessage(DateTimeToStr(data) + ' vs ' + VarToStr(V));
 // output is
 // data = 2012-01-31 23:59:59
 // v    = 2012-02-01            // why next day?

Это специальное поведение? Как это обойти?

6
задан Kromster says support Monica 10 December 2015 в 08:46
поделиться