将TValue转换为TDateTime

时间:2014-07-02 09:38:29

标签: delphi reflection tdatetime tvalue

如何在TDateTime中转换TValue?

我看到有像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 个答案:

答案 0 :(得分:4)

具体的AsXXX方法(如AsInteger)只是某些内在类型的快捷方式(有些也是针对特定类型的优化实现的)。 但要从TValue获取任何类型,您可以使用AsType<T>方法。