博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
时间与相关类型(1) - TDateTime 与 Double
阅读量:6619 次
发布时间:2019-06-25

本文共 1457 字,大约阅读时间需要 4 分钟。

  hot3.png

//相关函数:SysUtils.FloatToDateTime();SysUtils.TryFloatToDateTime();
在 System 单元定义有: TDateTime = type Double;
看来 TDateTime 是一个 8 字节 64 位数据, 不过是 Double 的别名.

{测试: TDateTime 就是一个 Double}var  t: TDateTime;  d: Double;  s: string;begin  t := EncodeDateTime(2009, 5, 22, 11, 22, 33, 999);  {强制转换}  d := Double(t);  ShowMessage(FloatToStr(d)); //39955.4740046181  {隐式转换}  d := t;  ShowMessage(FloatToStr(d)); //39955.4740046181  {不必转换}  ShowMessage(FloatToStr(t)); //39955.4740046181  {直接把一个 Double 当作 TDateTime 看待}  s := FormatDateTime('yyyy-m-d h:m:s:z', 39955.4740046181);  ShowMessage(s);             //2009-5-22 11:22:33:999end;
不会是任何一个 Double 都会转换成一个合法的时间, SysUtils 单元给出了最小与最大时间的常数:

const  MinDateTime: TDateTime = -657434.0;      { 01/01/0100 12:00:00.000 AM }  MaxDateTime: TDateTime =  2958465.99999; { 12/31/9999 11:59:59.999 PM }
保险起见, 应该通过: FloatToDateTime(); 或 TryFloatToDateTime(); 把一个数转换到 TDateTime;
反向转换就没必要用函数了.

{使用 TryFloatToDateTime}var  t: TDateTime;  d: Double;begin  d := 0;  if TryFloatToDateTime(d, t) then    ShowMessage(DateTimeToStr(t)); //1899-12-30end;{使用 FloatToDateTime; 转换失败或遇到非法时间时会抛出异常}var  t: TDateTime;  d: Double;begin  d := 0;  t := FloatToDateTime(d);  ShowMessage(DateTimeToStr(t)); //1899-12-30end;{当时间是 1899年12月30日 0时0分0秒 0毫秒时, TDateTime 对应的时间值是 0}var  d: Double;  t: TDateTime;begin  t := StrToDateTime('1899-12-30 0:0:0:0');  d := Double(t);  ShowMessage(FloatToStr(d)); //0end;

转载于:https://my.oschina.net/hermer/blog/320526

你可能感兴趣的文章
基于Vue构造器创建Form组件的通用解决方案
查看>>
只有不停的奔跑,你才能停留在原地
查看>>
Vue中的this
查看>>
动手实操 | 作为一名美女设计师,她用 6 小时写了个上传七牛云的桌面客户端...
查看>>
深入理解 Activty 加载速度优化
查看>>
自定义view总结
查看>>
ijkplayer中遇到的问题汇总
查看>>
玩转CocoaPods
查看>>
深复制
查看>>
Flutter完整开发实战详解(三、 打包与填坑篇)| 掘金技术征文
查看>>
聊聊springboot2的MappingsEndpoint
查看>>
RecyclerView你一定会用到的功能
查看>>
注意!JS的结构你真的了解吗?
查看>>
threejs+tweenjs实现3D粒子模型切换
查看>>
Android小知识-如何加载外部dex文件中的类
查看>>
Flink 集群运行原理兼部署及Yarn运行模式深入剖析-Flink牛刀小试
查看>>
前端实现文字跑马灯的三种方式
查看>>
大话PM 产品经理必备利器:UML
查看>>
ios swf动画播放
查看>>
服务器上搭建WordPress网站
查看>>