Delphi的时间处理
这几天因为自己要学习编写一个小程序中要用到一些时间处理。就在网上搜集一些教材学习到一般的应用,做个笔记,加深印象。
用上Delphi中相应的函数,Delphi的时间处理起来还是很容易的。
Delphi的时间类型是TDateTime,其实是一个Double.这个double的整数部分,就是从很久很久以前的某一天算起的天数。小数就是时间部分了。因为很远很远的一天是从0点开始的。所以小数部分的0值也是对应着一天的开始0点0分0秒。
用函数DateTimetoStr(0)就可以看到那神秘很远的一天了。这其中用数字0做参数,表明TDateTime是double.同理也可以用TimetoStr(0),TimetoStr(0.5),看一看时间的转换。
函数:
DateTimetoStr()
DatetoStr()
TimetoStr()
strtotime('10:00:00)
strtodate('2006-2-8')
strtodatetime('2006-2-8 10:00:00')
注意其中日期时间显示的成文本时候的格式。
转换成文本时候,还有另外一个函数:
FormatDatetime(Formatestring,TDateTime):String
返回值依然是格式化好的string.倒是Formatstring是一个值得研究。
其有用的格式字符:mmmm表示月份, dd表示日, yyyy表示年, hh:mm:ss 是时间(其后用AM/PM 有无来切换12/24小时制)。当d单独写且超过三个ddd,则表示星期。除月日,其它各项间要用','间隔。里面可加用'""'包含的字符,会原样添加到返回值中。
Delphi help 中的一个例子:
S := FormatDateTime('"The meeting is on " ddd, mmmm d, yyyy, " at " hh:mm AM/PM',Now);
则s值为:The meeting is on Wednesday, February 15, 1995 at 2:30 PM
Now(),返回当前系统时间的TDateTime
既然TDateTime是一个double,相互之间是可以直接进行运算的。当然考虑到时间的实际意义,只能进行加和减的运算。比如:Now+1,就表示第二天的这个时候。Now-0.125表示3小时以前。
Now()是用来取系统时间,Win32的时间与delphi的TDateTime的格式还是不同的。
win32时间格式在delphi中定义为:TSystemTime,在delphi中我们可以不用直接处理它。例如now函数在取时间的时候已经帮我们自动转化成TDateTime格式了。
Now()的反向操作,改写系统时间。
用到一个win32 API函数:SetLocalTime(TSystemTime)
而TDateTime到TSystemTime的转换是用DateTimetoSystemTime(TDateTime,TSystemTime)
要注意的是其参数,而不是用函数的返回值得到TSystemTime。
Delphi的时间处理的更多相关文章
- Delphi DateUtils时间单元
Uses DateUtils //时间单元,非常有用. 记得引用这个单元,不然不能用. CompareDate 比较两个日期时间值日期部分的大小 CompareDateTime 比较两个日期时间值的大 ...
- Delphi日期时间 UNIX
Delphi日期时间,就是常见的 2014-05-02 10:37:35 --------------------------------------------------------------- ...
- Delphi的时间与字符串函数代码示例
[delphi] view plaincopyprint? SysUtils.StrToDate(); SysUtils.StrToDateDef(); SysUtils.TryStrToDate() ...
- Delphi 日期时间函数
DateUtils.IncYear();DateUtils.IncMonth();DateUtils.IncWeek();DateUtils.IncDay();DateUtils.IncHour(); ...
- Delphi 设置时间格式
// 设置WINDOWS系统的短日期的格式SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SSHORTDATE, 'yyyy-MM-dd'); Applicat ...
- Delphi的时间 x87 fpu control word 精度设置的不够
在win7 64位系统下, 一个DELPHI写的DLL注入一个C语言程序后. 出现非常奇怪的浮点数相加出错的情况. (注: 在XP系统下是正常的).比如: 40725.0001597563 + 0.7 ...
- Delphi 获取时间的年月日
procedure TFrmLltj.FormActivate(Sender: TObject); var Present: TDateTime; Year, Month, Day, Hour ...
- Delphi 判断时间是否合法 -IsValidDateTime、IsValidDate、IsValidTime、IsValidDateDay
DateUtils.IsValidDateTimeDateUtils.IsValidDateDateUtils.IsValidTimeDateUtils.IsValidDateDayDateUtils ...
- delphi 最全日期格式_DateUtils时间单元说明
DateUtils时间单元说明 CompareDate 函数 比较两个日期时间值日期部分的大小 CompareDateTime 函数 比较两个日期时间值的大小 CompareTime 函数 比较两个日 ...
随机推荐
- C 的 一些写法格式 交流
好久以前刚开始学习前辈们的代码的时候,发现好多代码感到好奇怪. 1)代码看不懂 2)代码格式看不懂 网上也没见同学们分享.当自己代码写多了,也渐渐的理解为什么要这样写了. 说主题之前 还是 说一些 题 ...
- "大账户"时代
当要下载某文件时,哪怕是免积分,也需要登陆账户才能下载. 当要浏览某论坛时,只有注册账户,才可以浏览帖子. 当要网购商品时,必须注册账户,还要有众多宝宝平台,才可以实现交易. 当要团购时,必须先 ...
- hdu 5349 MZL's simple problem
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5349 MZL's simple problem Description A simple proble ...
- hdu 1908 Double Queue
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1908 Double Queue Description The new founded Balkan ...
- JSON对象和String之间的互转及处理
如题,本文列举了一些在web前端开发中常用的转换及处理方式.使用JSON而不是字符串,主要是为了方便处理. JSON:JavaScript 对象表示法(JavaScript Object Notati ...
- BASE64与单向加密算法MD5&SHA&MAC
言归正传,这里我们主要描述Java已经实现的一些加密解密算法,最后介绍数字证书. 如基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Diges ...
- 1.Knockout.Js(简介)
前言 最近一段时间在网上经常看到关于Knockout.js文章,于是自己就到官网看了下,不过是英文的,自己果断搞不来,借用google翻译了一下.然后刚刚发现在建立asp.net mvc4.0的应用程 ...
- [转]WinExec、ShellExecute和CreateProcess及返回值判断方式
[转]WinExec.ShellExecute和CreateProcess及返回值判断方式 http://www.cnblogs.com/ziwuge/archive/2012/03/12/23924 ...
- 在EDK里面添加ISE IP core的方法
(1)在ISE下,使用core generator,可以得到xilinx的IP的*.v和*.ngc 文件,将这两个文件拷贝出来: (2)在EDK下使用“Create or Import Periphe ...
- 网络笔记02数据解析 -1-JSON解析
1.JSON解析 1.JSON介绍 JSON是最网络传输数据最为广泛的数据格式,没有之一,出身草根,是Javascript的子集,专门负责描述数据格式.Javascript是网页开发的一种脚本语言,和 ...