zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    Flink流处理(一)- 状态流处理简介
    YARN High Availablity
    把数组转换成sql中能使用的字符串
    StringUtils中 isNotEmpty 和isNotBlank的区别
    SQL的四种连接-左外连接、右外连接、内连接、全连接
    JS判断输入是否为整数的正则表达式
    Java构造和解析Json数据的两种方法详解二
    JSON详解
    Java构造和解析Json数据的两种方法详解一
    详细讲解JAVA中的IO流
  • 原文地址:https://www.cnblogs.com/mitang/p/3567519.html
Copyright © 2011-2022 走看看