字符串转时间格式

来源:互联网 发布:天庭淘宝店有第二部吗 编辑:程序博客网 时间:2024/05/17 21:59

周末。

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

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    于穗