如何从Delphi中的datetimepicker组件中提取时间?

Jua*_*mez 4 delphi datetimepicker

我有一个Delphi表单的datetimepicker组件,我想得到时间.当我在调试模式中查看日期时,我看到了42544.621701,我希望得到 0.621701没有日期值.

Ond*_*lle 12

你可以使用这个Frac()功能:

var
  Time: TTime;
...
  Time := Frac(DateTimePicker1.DateTime);
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用该System.DateUtils.TimeOf()函数,它只是一个Frac()带有更具描述性名称的内联包装器:

uses
  ..., DateUtils;

var
  Time: TTime;
...
  Time := TimeOf(DateTimePicker1.DateTime);
Run Code Online (Sandbox Code Playgroud)

  • _System.DateUtils_有一个函数`TimeOf`,它只是一个围绕`Frac`的内联包装器,但具有更具描述性的名称. (3认同)
  • @LURD:根据我的经验,`Time`属性通常包含日期值,而`Date`属性通常包含`Time`值.这是因为它们都由`DateTime`属性支持,但是它们的getter试图截断该值,并不总是如此.所以我总是使用`DateOf()`和`TimeOf()`手动剥离不需要的数据,以防万一. (2认同)
  • 它不仅仅是一个带有描述性名称的包装器.它提供绝缘实现细节. (2认同)

Dav*_*nan 5

问题实际上并不是关于日期时间选择器.控件返回日期时间值.您正在寻找一种方法来提取时间部分.使用本机的TimeOf功能执行此操作System.DateUtils.

 MyTime := TimeOf(MyDateTime);
Run Code Online (Sandbox Code Playgroud)