字符串转时间格式

周末。

把字符串转时间格式的一些的方法小结一下。

DEMO如下:

---------------------------

uses StrUtils;

......
......

var TimeStr:String;
    aDate:TDateTime;
begin
  TimeStr:='2006/03/05';
  TimeStr:=AnsiReplaceStr(TimeStr, '/', '-');
  aDate:=StrToDate(TimeStr);
  ShowMessage('AnsiReplaceStr(''2006/03/05'')='+ DateToStr(aDate)); //得到'2006-3-5'


  TimeStr:='2006/03';
  TimeStr:=AnsiReplaceStr(TimeStr, '/', '-');
  if Pos('-',TimeStr) = LastDelimiter('-',TimeStr) then //判断是否只有一个分割符
     TimeStr:=TimeStr+'-01';
  aDate:=StrToDate(TimeStr);
  ShowMessage('LastDelimiter(''2006/03'')='+ DateToStr(aDate));  //得到'2006-3-1'


  TimeStr:='2006/03/05';
  aDate:=VarToDateTime(TimeStr);
  ShowMessage('VarToDateTime(''2006/03/05'')='+ DateToStr(aDate)); //得到'2006-3-5'


  TimeStr:='2006/03';
  aDate:=VarToDateTime(TimeStr);
  ShowMessage('VarToDateTime(''2006/03'')='+ DateToStr(aDate)); //得到'2006-3-1'


  TimeStr:='2006-03-05';
  aDate:=VarToDateTime(TimeStr);
  ShowMessage('VarToDateTime(''2006-03-05'')='+ DateToStr(aDate)); //得到'2006-3-5'

 {Microsoft Excel 将日期存储为序列号(称为序列值)。
  默认情况下,1900年1月1日是序列号1,2008年1月1 日是序列号39,448。
  这是因为它距 1900 年1月1日有39,448 天。
  Excel 将时间存储为小数,因为时间被看作天的一部分。
  因为日期和时间都是数值,因此也可以进行加、减等各种运算。
  通过将包含日期或时间的单元格格式设置为“常规”格式,
  可以查看以系列值显示的日期和以小数值显示的时间。
  Microsoft Excel for Windows 默认的日期系统是 1900 年日期系统。
  }
  
  TimeStr:='38781'; //Excel文件中存储的日期格式,距1900 年 1 月1 日 有38781天。
 
  //格式化为'yyyy-mm-dd'的时间格式
  if StrToFloatDef(TimeStr, -99999) <> -99999 then
     TimeStr := FormatDateTime('yyyy-mm-dd', StrToFloat(TimeStr));  
  aDate:=VarToDateTime(TimeStr);
  ShowMessage('StrToFloatDef(''38781'')='+ DateToStr(aDate)); //得到'2006-3-5'


  TimeStr:='2006-03-05';  //yyyy-mm-dd时间格式
  if StrToFloatDef(TimeStr, -99999) <> -99999 then 
     TimeStr := FormatDateTime('yyyy-mm-dd', StrToFloat(TimeStr)); //这句没有必要,仅验证StrToFloatDef。
  aDate:=VarToDateTime(TimeStr);
  ShowMessage('StrToFloatDef(''2006-03-05'')='+ DateToStr(aDate)); //得到'2006-3-5'
end;

---------------------------

[-完-]

                                                                                        By    J.R.Q.

                                                                                      2006/03/05    于穗

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值