首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TDateTimePicker与日期

TDateTimePicker与日期
EN

Stack Overflow用户
提问于 2015-03-18 18:31:00
回答 3查看 2.8K关注 0票数 3

对于来自德尔菲XE7的一个奇怪的问题来说,这是一个简单的问题。

我有这个密码..。

代码语言:javascript
复制
procedure TForm1.Button1Click(Sender: TObject);
begin
  DateTimePicker1.Date:= Date;
  memo1.Lines.Add(FloatToStr(Date) + ' vs ' + FloatToStr(DateTimePicker1.Date));
end;

今天,2015年3月18日,在我按下按钮后,我得到的结果是:

代码语言:javascript
复制
42081 vs 42081.846316956

如果我在5分钟后再次按下,我就会得到同样的结果。为什么值是不一样的?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-18 18:43:09

Date()函数截断返回值的十进制部分(将时间部分设置为0)。因此,它返回当前日期/时间,只填写日期。

TDateTimePicker.Date属性设置器只更新内部存储的TDateTime的日期部分,保持现有时间不变。TDateTimePicker.Date属性getter返回整个内部存储的日期/时间,而不是像人们预期的那样仅返回日期。因此,您将看到由TDateTimePicker初始化的更新日期+原始时间。

票数 8
EN

Stack Overflow用户

发布于 2015-03-18 18:42:18

  • TDateTimePicker.DateTDateTimePicker.Time属性getter返回完整的日期/时间值,尽管它们的名称。另一方面,属性设置程序按照预期只更新日期部分和时间部分。
  • Date()函数返回一个只包含日期部分,而不包含时间部分的TDateTime

要仅检索日期部分,可以使用DateOf()函数从DateUtils单元删除TDateTimePicker.DateTDateTimePicker.DateTime属性返回的值的时间部分:

代码语言:javascript
复制
DateOf(DateTimePicker1.Date)
票数 2
EN

Stack Overflow用户

发布于 2015-03-18 18:41:44

将Datepicker1.Time设置为0,您将得到相同的结果。这是你在小数中看到的白天的一部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29129982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档