admin

取服务器Internet时间,unix时间格式化,系统日期格式转换统一


function UnixDateToDateTime(const USec: Longint): TDateTime;

const

  cUnixStartDate: TDateTime = 25569.0; // 1970/01/01

begin

  Result := (Usec / 86400) + cUnixStartDate;

end;


//根据系统日期分隔符修改自己的时间

function ConvertDate(text:string):TDate;

var

settings: TFormatSettings;

begin

    GetLocaleFormatSettings(GetUserDefaultLCID, settings);

    if( settings.DateSeparator='/') then

      text :=StringReplace(text, '-', '/', [rfReplaceAll])

    else

      text :=StringReplace(text, '/', '-', [rfReplaceAll]);


    result:=StrToDate(text);

end;



//http://www.114time.com/api/clock.php

  k:=idhtp1.Get('http://www.114time.com/api/clock.php');

  k:=StringReplace(k,'{"times":','',[rfReplaceAll]);

  k:=StringReplace(k,'}','',[rfReplaceAll]);

  k:=Copy(k,1,10);

  a:=UnixDateToDateTime(StrToInt(k));

  b:=ConvertDate('2016-12-31');

  if a>b then

    begin

      ShowMessage('试用时间超时!');

    end;




SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SSHORTDATE,pchar('yyyy-MM-dd')); 

//设置短日期格式


SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SLONGDATE,pchar('yyyy''年''M''月''d''日'')); 

//设置长日期格式为 yyyy'年'M'月'd'日',“年月日”字符必须用单引号括起来。Delphi字符串里必须用两个单引号。


SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_STIMEFORMAT,pchar('H:mm:ss')); 

//设置时间格式,24小时制


SendMessageTimeOut(HWND_BROADCAST,WM_SETTINGCHANGE,0,0,SMTO_ABORTIFHUNG,10,p);

//设置完成后必须调用,通知其他程序格式已经更改,否则即使是程序自身也不能使用新设置的格式


try

  if StrToDateTime('2017-06-11 12:12:12')<Now then close;

except

  close;

end;


#1楼
发帖时间:11月前   |   查看数:0   |   回复数:0
游客组