delphi用于时间操作的函数 (2)-阿里云开发者社区

开发者社区> 余二五> 正文

delphi用于时间操作的函数 (2)

简介:
+关注继续查看
TDateTime类型与字符串型转换函数:
DateTimeToStr 函数: 
DateToStr 函数 
TimeToStr函数 
定义:function DateTimeToStr(DateTime: TDateTime): string; 
      function TimeToStr(Time: TDateTime): string; 
function TimeToStr(Time: TDateTime): string; 
作用:将一个TDateTime类型的数转换成字符串,DateTimeToStr转换日期和时间,DateToStr只转换日期,TimeToStr只转换时间。转换后的输出效果为YYYY-M-D H:M:S
StrToDateTime函数 
StrToDate函数 
StrToTime函数 
定义:function StrToDateTime(const S: string): TDateTime; 
      function StrToDate(const S: string): TDateTime; 
      function StrToTime(const S: string): TDateTime; 
作用:将带有日期时间格式的字符串转化成TDateTime,其中S必须是一个有效的字符串,如 
      YY-MM-DD HH:MM:SS格式,否则就会触发EConvertError事件,提示错误信息。 
      时间部分的字符串必须是由2~3个的数值字串构成,并且采用在Windows区域设置中设置的分隔字符进行分隔,其格式要求符合在Windows区域设定中的设定,其中HH,MM(小时,分钟)必须添加,SS(秒)可选,也可以在后面加入 Am和Pm区分上下午,这时候系统将认为采用12小时表示法,否则认为采用24小时表示法。 
      日期部分的格式要求符合Windows区域设置中的短日期格式,也是由2~3个的数值字串构成,如果在字符串中只有2个数,则认为是指定了月份和日期,年份采用当前年份, 
      如果在区域设置中采用两位年份的表示方法,则系统将会采用以下方法处理: 
当前年份 起始年份 基准值 输入年份03 输入年份50 输入年份68 
1998 0 1900 1903 1950 1968 
2002 0 2000 2003 2050 2068 
1998 50 1948 2003 1950 1968 
2000 50 1950 2003 1950 1968 
2002 50 1952 2003 2050 1968 
2020 50 1970 2003 2050 2068 
2020 10 2010 2103 2050 2068 
      首先在区域设置中取得两位年份的起始年份,如在区域设置中设两位年份范围为1932-2031年,则起始年份为32年,如果这个起始年份为0,则认为两位年份表示的都是本世纪,如果其实年份大于0 ,则采用当前年份减去起始年份的值,这个值称为基准值,大于等于这个值则认为事本世纪,否则认为是下世纪,下面给出几个例子说明:
DateTimeToString 过程: 
FormatDateTime 函数: 
定义:procedure DateTimeToString(var Result: string; const Format: string; DateTime: TDateTime); 
       function FormatDateTime(const Format: string; DateTime: TDateTime): string; 
作用:通过定义Format字串中的格式得到要输出时间字符串,例如要输出“今天是2002年5月5日,星期五”就可以用这两种方法,这两个方法的作用相同,只是一个是通过共享变量取得输出字符串,值在Result中,一个是通过返回值取得输出字符串,DateTime参数是希望输出的日期值,Format由格式标志与附加字符串组合而成。附加字串用””圈起,就像C中的Printf函数.如“今天是2002年5月5日,星期五”的Format值就是 ‘”今天是”yyyy”年”mm”月”dd”日,” dddd’,yyyy,mm,dd,dddd都是格式标识,各种格式标识的解释如下: 
       d      :用一位或两位整数显示日子(1-31) 
       dd     :用两位整数显示日子,不足两位的用0补足(01-31) 
       ddd    :按缩略方式显示当前的星期号,如果Windows是英文版,则显示为Mon-Sun,如果是中文版,则显示同dddd。 
       dddd   :按完整方式显示当前的星期号,如Windows是英文版,则显示Monday-SumDay,如果是中文版,则显示星期一~星期日 
       ddddd  :按区域设置中的短日期格式输出。 
       dddddd :按区域设置中的长日期格式输出。 
       m      :用一位或两位整数显示月份(1-12) 
       mm     :用两位整数显示月份,不足两位的用0补足(01-12) 
       mmm    :使用缩略方式显示月份名称,英文版显示为Jan-Dec,中文版同mmmm 
       mmmm   :使用完整方式显示月份名称,英文版显示为January-December,中文版为一月~十二月 
       yy     :按两位整数方式显示年份(00-99) 
       yyyy   :按四位整数方式显示年份(0000-9999) 
       h      :用一位或两位整数显示小时(0-23)        
hh     :用两位整数显示小时,不足两位的用0补足(00-23) 
       n      :用一位或两位整数显示分钟(0-60)        
       nn     :用两位整数显示分钟,不足两位的用0补足(00-60) 
       s      :用一位或两位整数显示秒数(0-60) 
       ss     :用两位整数显示秒数,不足两位的用0补足(00-60) 
       z      :用一位至两位整数显示毫秒数(0-999) 
       zzz    :用三位整数显示毫秒数,不足三位的用0补足(000-999) 
       tt     :按照区域设置中的格式显示日期 
       am/pm  :用于12小时制的显示,带有AM的则表示从0点~12点,pm代表从12点~0点。

与时间相关的变量:
Delphi封装了区域设置的各种信息,并以此定义了一系列的变量,下面介绍与时间相关的部分变量: 
DateSeparator :Char 
日期分隔符,用于分隔年月日 
TimeSeparator :Char 
时间分隔符,用于分隔小时,分钟,秒 
ShortDateFormat:String 
区域设置中短日期格式的定义。 
LongDateFormat :String 
区域设置中长日期格式的定义。 
ShortTimeFormat:String 
区域设置中短时间格式的定义。 
LongTimeFormat :String 
区域设置中长时间格式的定义。 
TimeAMString :String 
用来表示上午的字符串 
TimePMString :String 
用来表示下午的字符串 
ShortMonthNames:array[1..12] of String; 
用于缩略表示月份名称的数组,就是在使用FormatDateTime时显示的mmm标识的字符串 
LongMonthNames:array[1..12] of String; 
用于完整表示月份名称的数组,就是在使用FormatDateTime时显示的mmmm标识的字符串 
ShortDayNames :array[1..7] of String; 
用于缩略表示星期名称的数组,就是在使用FormatDateTime时显示的ddd标识的字符串 
LongDayNames :array[1..7] of String; 
用于完整表示星期名称的数组,就是在使用FormatDateTime时显示的ddd标识的字符串 
TwoDigitYearCenturyWindow:Word = 50; 
在使用两位年份时的起始年份。




本文转自 byteh 51CTO博客,原文链接:http://blog.51cto.com/byteh/53641,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用NAT网关轻松为单台云服务器设置多个公网IP
在应用中,有时会遇到用户询问如何使单台云服务器具备多个公网IP的问题。 具体如何操作呢,有了NAT网关这个也不是难题。
26538 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
2840 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
11013 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
11943 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
8802 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
12293 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
11778 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
7340 0
+关注
20382
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载