【问题标题】:Convert a TValue into TDateTime将 TValue 转换为 TDateTime
【发布时间】:2014-08-23 01:04:57
【问题描述】:

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

【问题讨论】:

  • fieldValue.AsType<TDateTime>
  • 请停止在问题的文本和标题中添加“In Delphi”。 delphi 标签让每个人都知道您的问题是关于 Delphi 的;没有必要到处重复添加它。此处的标签效果很好,既可以将您的问题展示在可以回答的人面前,也可以对其进行正确分类以进行搜索;它不需要重复的帮助。 :-) 谢谢。

标签: delphi reflection tdatetime tvalue


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 2016-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多