比如这个时间值是:1133936568
如果转换过来应是:2005-12-7 14:22:48我的代码转换成了:2005-12-7 6:22:48
差了8个小时,汗代码如下:function GetTime(N:DWord): string;
var
BaseTime:TDateTime;
BS,DS,a:TTimeStamp;
begin
BaseTime:=EncodeDate(1970,1,1)+EncodeTime(0,0,0,0);
BS:=DateTimeToTimeStamp(BaseTime);
DS.Time:=(N mod (60*60*24))*1000;
DS.Date:=N div (60*60*24);
a.Time:=BS.Time+DS.Time;
a.Date:=BS.Date+DS.Date;
result:=DateTimeToStr(TimeStampToDateTime(a));
end;procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(gettime(1133936568));
end;怎么办?
如果转换过来应是:2005-12-7 14:22:48我的代码转换成了:2005-12-7 6:22:48
差了8个小时,汗代码如下:function GetTime(N:DWord): string;
var
BaseTime:TDateTime;
BS,DS,a:TTimeStamp;
begin
BaseTime:=EncodeDate(1970,1,1)+EncodeTime(0,0,0,0);
BS:=DateTimeToTimeStamp(BaseTime);
DS.Time:=(N mod (60*60*24))*1000;
DS.Date:=N div (60*60*24);
a.Time:=BS.Time+DS.Time;
a.Date:=BS.Date+DS.Date;
result:=DateTimeToStr(TimeStampToDateTime(a));
end;procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(gettime(1133936568));
end;怎么办?
function GetGMTBias: Integer;
var
info: TTimeZoneInformation;
Mode: DWord;
begin
Mode := GetTimeZoneInformation(info);
result := info.Bias;
case Mode of
TIME_ZONE_ID_INVALID: RaiseLastOSError;
TIME_ZONE_ID_STANDARD: result := result + info.StandardBias;
TIME_ZONE_ID_DAYLIGHT: result := result + info.DaylightBias;
end;
end;
------------------------------------
加在哪里?
a.Time:=BS.Time+DS.Time+GetGMTBias;?
或者
a.Date:=BS.Date+DS.Date+GetGMTBias;?
可惜都没有得到我所要的!
还有哪里可加?
var
BaseTime:TDateTime;
begin
BaseTime:=EncodeDateTime(1970,1,1,0,0,0,0);
Result:=DateTimeToStr(IncSecond(BaseTime,N));
end;
alexanda2000的代码果然比偶的简单多了,呵呵,难道1133936568就是2005-12-7 6:22:48吗?怀疑ing...这个1133936568值是我用ReadEventLog函数读出来的,在事件查看器里面显示的是2005-12-7 14:22:48,可是我取得的就是1133936568转过来就成了2005-12-7 6:22:48,郁闷呀