我知道Delphi好像以1970.01.01 00:00:00为基准时间
我的代码如下:
GetSystemTime(SystemTime);
DateNow := SystemTimeToDateTime(SystemTime);
DateNow := DateNow - StrtoDateTime('1970.01.01');
inow := round(DateNow * 3600 * 24);但是不对阿~
我的代码如下:
GetSystemTime(SystemTime);
DateNow := SystemTimeToDateTime(SystemTime);
DateNow := DateNow - StrtoDateTime('1970.01.01');
inow := round(DateNow * 3600 * 24);但是不对阿~
还有一个最笨的办法:用DecodeDate(Date: TDateTime; var Year, Month, Day: Word);把TDateTime转换成年、月、日,分别把year、month、day算成秒,再用DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word);把TDateTime转换成时、分、秒、毫秒,再把hour、min算成秒,最后所有算出的秒相加。
最苯的办法,实在不行时或不追求效率时再用吧!!!
GetSystemTime(SystemTime);
DateNow := SystemTimeToDateTime(SystemTime);
DateNow := DateNow - StrtoDateTime('1970.01.01');
inow := round(DateNow * 3600 * 24);
问题是我在执行StrtoDateTime('1970.01.01');时出的错
GetSystemTime(SystemTime);
DateNow := SystemTimeToDateTime(SystemTime);
DateNow := DateNow - StrtoDateTime('1970.01.01');
inow := round(DateNow * 3600 * 24);
问题是我在执行StrtoDateTime('1970.01.01');时出的错
=======================================================
你的(DateNow)这个值是正确的吗?
从跟踪来看应该是正确的37680.04973
StrtoDateTime()的参数默认是和系统的格式一样;
begin
datetime:=now();
showmessage(formatdatetime('yyyy.mm.dd hh:mm:ss',datetime));
end;
你用这个试一下呀,这样不就可以了吗?
我的问题是用now和GetSystemTime得到的系统时间有什么不同呢
把当前时间进行分解,使用函数decodetime
这样就得到了当前日期时间的秒数然后计算'1970-01-01 00:00:00'的秒数两个相减即可
前者返回的是格林尼治时间。
同北京时间差几个小时的,呵呵。