delphi - 将 TValue 转换为 TDateTime

标签 delphi reflection tdatetime tvalue

如何将 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;

最佳答案

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

关于delphi - 将 TValue 转换为 TDateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24527743/

相关文章:

delphi - 在 TPageControl 的每个 Ttabsheet 中绘制一个关闭按钮

delphi - indy ssl delphi 服务器

database - 为 Delphi 应用程序选择数据库和许可

c# - 在运行时计算类代码的哈希值 (C#)?

c# - 反射(reflect)旧版本的 System.dll

delphi - Delphi 2010 中的编码时间问题

delphi - 如何为控制台窗口创建表单模式

scala - 为什么Scala在类(class)名的末尾加一个美元符号?

c++ - 从日期和时间中提取日期

delphi - 尝试使用 Lazarus 和 Freepascal 创建数据传输率计算器