var
p : array of byte;
tdate :Tdatetime;
begin
  setlength(p,8);
  file.read(p[0],8);
  tdate = ?
end;
如何将读到的字节数组转换给tdate?

解决方案 »

  1.   

    IntToStr和 
    StrToDateTime
      

  2.   

    我用delphi读取vc写入的二进制文件。
    用的是Tfilestream方式,所以我建了一个动态数组来读取。
    但是,该二进制文件中有一几个信息是日期,在vc中是time_t类型。现在有两个问题:
    1、time_t是8个字节还是16个字节?
    2、读出来后,如何转换为Tdatetime类型?var
    p : array of byte;
    tdate :Tdatetime;
    userid :string;
    begin
      setlength(p,2);
      file.resa(p[0],2);
      userid := string(p);  setlength(p,8);
      file.read(p[0],8);
      tdate = ?
    end;j急呀!
      

  3.   

    tdate:=StrToDateTime(IntToStr(file.read(p[0],8)));
      

  4.   

    关键是VC中你是以什么格式写入文件
    VC中time_t应该是32位的吧,好象是LONG
      

  5.   

    EncodeDateTime()
    EncodeDate()
    EncodeTime()
      

  6.   

    楼上的,你的方法怎么用?如果time_t是32位的?那就是4个字节啦?但我按四个字节读还是不行呀!请教高人!
      

  7.   

    var
    p : array of byte;
    tdate :Tdatetime;
    begin
      setlength(p,8);
      file.read(p[0],8);
      tdate = PDouble(@p[0]);
    end;
      

  8.   

    var
    p : array of byte;
    tdate :Tdatetime;
    begin
      setlength(p,8);
      file.read(p[0],8);
      tdate = PDouble(@p[0])^;
    end;
      

  9.   

    文件格式不清楚 先转 成 2002-06-23  类似的格式  然后用StrToDateTime