我知道Delphi好像以1970.01.01 00:00:00为基准时间
我的代码如下:
  GetSystemTime(SystemTime);
  DateNow := SystemTimeToDateTime(SystemTime);
  DateNow := DateNow - StrtoDateTime('1970.01.01');
  inow := round(DateNow * 3600 * 24);但是不对阿~

解决方案 »

  1.   

    你试一下将1970.01.01写成1970:01:01
    还有一个最笨的办法:用DecodeDate(Date: TDateTime; var Year, Month, Day: Word);把TDateTime转换成年、月、日,分别把year、month、day算成秒,再用DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word);把TDateTime转换成时、分、秒、毫秒,再把hour、min算成秒,最后所有算出的秒相加。
    最苯的办法,实在不行时或不追求效率时再用吧!!!
      

  2.   

    这样肯定不的!!你不时间付给double型的变量 在 和 60 *3600运算
      

  3.   

    我的iNow定义的是dword类型,DateNow是TDateTime型,我的代码是:
      GetSystemTime(SystemTime);
      DateNow := SystemTimeToDateTime(SystemTime);
      DateNow := DateNow - StrtoDateTime('1970.01.01');
      inow := round(DateNow * 3600 * 24);
    问题是我在执行StrtoDateTime('1970.01.01');时出的错
      

  4.   

    我的iNow定义的是dword类型,DateNow是TDateTime型,我的代码是:
      GetSystemTime(SystemTime);
      DateNow := SystemTimeToDateTime(SystemTime);
      DateNow := DateNow - StrtoDateTime('1970.01.01');
      inow := round(DateNow * 3600 * 24);
    问题是我在执行StrtoDateTime('1970.01.01');时出的错
    =======================================================
    你的(DateNow)这个值是正确的吗?
      

  5.   

    anh(hananying) ( ) 信誉:
    从跟踪来看应该是正确的37680.04973
      

  6.   

    我知道愿意乐,我的日期分割符(DateSeparator)没有按照程序中事先定义的‘-’而是用的‘.’所以执行StrtoDateTime是出错,谢谢大家的帮助~
      

  7.   

    你看一下你系统的时间格式;
    StrtoDateTime()的参数默认是和系统的格式一样;
      

  8.   

    我认为你写的StrtoDateTime('1970.01.01')这句中的字符格式日期有问题,应为StrtoDateTime('1970-01-01 00:00:00'),请你试一下。
      

  9.   

    var  datetime :Tdatetime;
    begin
       datetime:=now();
       showmessage(formatdatetime('yyyy.mm.dd hh:mm:ss',datetime));
    end;
    你用这个试一下呀,这样不就可以了吗?
      

  10.   

    我将‘1970.01.01’改为‘1970-01-01’后已经可以乐
    我的问题是用now和GetSystemTime得到的系统时间有什么不同呢
      

  11.   

    把当前日期进行分解,使用函数decodedate
    把当前时间进行分解,使用函数decodetime
    这样就得到了当前日期时间的秒数然后计算'1970-01-01 00:00:00'的秒数两个相减即可
      

  12.   

    GetSystemTime和GetLocaltime时间不同的。
    前者返回的是格林尼治时间。
    同北京时间差几个小时的,呵呵。