Конвертировать TValue в TDateTime

Как я могу конвертировать TValue в TDateTime?

Я вижу, что есть методы, такие как AsInteger, AsDouble и т. Д., Но ничего для TDateTime.

var
  c : TRttiContext;
  t : TRttiType;
  f : TRttiField;
  fieldValue : TValue;
  fieldDateValue : TDateTime;
begin
  c := TRttiContext.Create;
    t := c.GetType(Self.ClassType);
    for f in t.GetFields do begin
      fieldValue := field.GetValue(Self);
      //convert the TValue in TDateTime
    end;
end;

1 ответ

Решение

Бетон AsXXX методы (как AsInteger) являются просто ярлыками для некоторых внутренних типов (а некоторые также реализованы с оптимизацией для определенного типа). Но чтобы получить любой тип из TValue Вы можете использовать AsType<T> метод.

Другие вопросы по тегам