如何取得世界时?
或者在当前日期减8小时也行。
但怎样才能得到正确的世界时,因为减8小时会遇到好多问题,如月份如何计算,二月如何处理,年如何处理。
可不可以写一个函数,回传当前时间减8小时后的时间。

解决方案 »

  1.   

    1)Now
    2)EightHour := EncodeDateTime(0, 0, 0, 8, 0, 0, 0) - Trunc(EncodeDateTime(0, 0, 0, 8, 0, 0, 0));
      NewDate := Now - EightHour;
    3)DecodeDateTime(NewDate, year, month, day, hour, min, seco, millseco);
      

  2.   

    保证管用,不信试试
    var
     td: _SYSTEMTIME;
     ft: FILETIME;
     dt:DateTime;
    .....
     DateTimeToSystemTime(dt, td);
     SystemTimeToFileTime(td,ft);
     LocalFileTimeToFileTime(ft,ft);
     FileTimeToSystemTime(ft,td);
     SetSystemTime(td); 
     ......
      

  3.   

    http://218.56.11.178:8020/web/index.aspx-> 下载基地->例程-经典应用->时间差计算大全/得到n小时前的时间得到n小时前的时间,当然日期就没问题了!
      

  4.   

    用这个最简单
    function GetAdd8(OldDatetime: TDatetime): TDatetime;
    begin
      result := OldDatetime - 1/3;//1/3就是8个小时
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Showmessage(DateTimeTostr(GetAdd8(Now)))
    end;
      

  5.   

    var
      cur:TDateTime;
    begin
      Cur := Now - StrToTime('8:00:00');
      Showmessage(DateTimeToStr(Cur));
    end;不关现在是什么时间都不会有问题,经过测试啦,呵呵
      

  6.   

    如果要日期的话就不Cur处理一下
    StrToDate(DateToStr(Cur))
      

  7.   

    简单的加减丫, 这里是不是Delphi的板块啊
      

  8.   

    uses DateUtilsvar
      NewTime:TDateTime;  NewTime:=IncHours(Now,-8);
      

  9.   

    简单的加减为什么不行,Stack(公冶长) 你说说
      

  10.   

    to  fuyifan(程序执著者) ( ) 信誉:98 
    简单的加减为什么不行,Stack(公冶长) 你说说===============================================
    我没说加减不行阿, 你看看我怎么说的啊
      

  11.   

    TO:楼主, chechy(简简单单的活) 大哥都发言了,你真够有脸面。
      

  12.   

    Function GetDateID(i:integer;date:string):String;
    var
      Year, Month, Day:Word;
      StrYear,StrMonth,StrDay:String;
    begin
      if date='next'    then   DecodeDate(Now+1, Year, Month, Day);
      if date='prior'   then   DecodeDate(Now-1, Year, Month, Day);
      if date='current' then   DecodeDate(Now, Year, Month, Day);
      if date='GLWZ'    then   DecodeDate(Now-0.33, Year, Month, Day);  if Year<10 then   StrYear:='0'+IntToStr(Year)
      else    StrYear:=IntToStr(Year);  if Month<10 then  StrMonth:='0'+IntToStr(Month)
      else    StrMonth:=IntToStr(Month);  if Day<10 then    StrDay:='0'+IntToStr(Day)
      else              StrDay:=IntToStr(Day);  case i of
          0:Result:=StrYear+StrMonth+StrDay;
          1:Result:=StrMonth+StrDay;
          2:Result:=StrYear+'年'+StrMonth+'月'+StrDay+'日';
          3:Result:=StrMonth+'月'+StrDay+'日';
          4:Result:=StrDay+StrMonth;
      end;
    end;我自己的函数 气象方面用的很多 肯定管用 自己试试