function ConvertToDateStr(ADatestr:string):TDateTime;
var
  tmpStr :string;
begin
 if Trim(ADatestr) <> '' then begin
  tmpStr := Copy(ADatestr,1,4) +'-'+ Copy(ADatestr,5,2)+'-'+ Copy(ADatestr,7,2);
  Result:= StrToDate(tmpStr);  //在此出现的为一浮点数
end;难道我的写法出现了问题?

解决方案 »

  1.   

    delphi里面的日期时间类型就是:
    TDateTime = type Double;
      

  2.   

    你的写法没错
    比如下面的日期也是用数字表示
    object DateTimePicker1: TDateTimePicker
        Left = 216
        Top = 24
        Width = 186
        Height = 21
        CalAlignment = dtaLeft
        Date = 37965.5738176273
        Time = 37965.5738176273
        DateFormat = dfShort
        DateMode = dmComboBox
        Kind = dtkDate
        ParseInput = False
        TabOrder = 1
      end这样测试
    edit2.text :=  FormatDateTime('yyyy-mm-dd',ConvertToDateStr(edit1.text));
      

  3.   

    日期型就是一个double型的数据
      

  4.   

    日期型就是一个double型的数据
      

  5.   

    为什么不直接用函数?
    StrToDateTime
      

  6.   

    看看TDateTime的定义,就比较清楚了其实在计算机系统中,1天即为单位1,
    那么一个小时是怎么样表示的呢?
    按照我们的定义即为:1 / 24 
    同理,一秒种即为:1 / 24 / 3600就这样,更详细的看一下Delphi的帮助
      

  7.   

    delphi里面,日期型就是一个double型的数据
      

  8.   

    放着现成的strtodate,strtodatetime不用,为什么要自己写呢?