• 本地同步到网络时间


    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
      IdTCPClient, IdTime, IdUDPBase, IdUDPClient, IdSNTP, IdTimeUDP, IdHTTP;
    
    type
      TForm1 = class(TForm)
        btn1: TButton;
        IdHTTP1: TIdHTTP;
        mmo1: TMemo;
        procedure btn1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    uses DateUtils;
    
    procedure TForm1.btn1Click(Sender: TObject);
    var
      IdHttp : TIdHTTP;
      Url : string;//请求地址
      ResponseStream : TStringStream; //返回信息
      ResponseDateTime : string; //服务器生成网页的时间
      ResponseStr:string;//服务器返回的网页信息
    
      sl:TStringList;
      syear,smonth,sday,stime:string;
      i:integer;
      dDate:TDateTime;
      settings: TFormatSettings;
    
      systemtime:Tsystemtime;
    begin
      IdHttp := TIdHTTP.Create(nil); //创建IDHTTP控件
      ResponseStream := TStringStream.Create('');   //TStringStream对象用于保存响应信息
      sl:=TStringList.Create;
      try
        Url := 'http://dict.youdao.com/';  //请求地址
        try
          IdHttp.Get(Url,ResponseStream);
        except
          on e : Exception do
          begin
            ShowMessage(e.Message);
          end;
        end;
        ResponseDateTime := IdHttp.Response.RawHeaders.Values['Date']; //获取网页的网络时间
        ResponseStr := ResponseStream.DataString;
        ResponseStr := UTF8Decode(ResponseStr); //网页中的存在中文时,需要进行UTF8解码
        self.Caption:= ResponseDateTime;
    
        {Fri
          22
          Feb
          2019
          06:37:39
          GMT
          }
        sl.DelimitedText:= StringReplace(ResponseDateTime,'GMT','',[rfReplaceAll]);
        //mmo1.Lines.Assign(sl);
    
        syear:= sl[3];
        smonth:= sl[2];
        sday:= sl[1];
    
        if smonth = 'Jan' then
          smonth := '01'  
        else if smonth = 'Feb' then  
          smonth := '02'  
        else if smonth = 'Mar' then  
          smonth := '03'  
        else if smonth = 'Apr' then  
          smonth := '04'  
        else if smonth = 'Mar' then  
          smonth := '05'  
        else if smonth = 'Jun' then  
          smonth := '06'  
        else if smonth = 'Jul' then  
          smonth := '07'
        else if smonth = 'Aug' then  
          smonth := '08'  
        else if smonth = 'Sep' then  
          smonth := '09'  
        else if smonth = 'Oct' then  
          smonth := '10'  
        else if smonth = 'Nov' then
          smonth := '11'  
        else if smonth = 'Dec' then  
          smonth := '12';
    
    
        stime:= sl[4];
        Self.Caption:= syear+'-'+smonth+'-'+sday+' '+stime;
    
    
        GetLocaleFormatSettings(GetUserDefaultLCID, settings);
        settings.DateSeparator := '-';
        settings.TimeSeparator := ':';
        settings.ShortDateFormat := 'yyyy-mm-dd';
        settings.ShortTimeFormat := 'hh:nn:ss';
    
    
        dDate:= StrToDateTime(self.Caption,settings);
        ddate:= IncHour(ddate,8); //转换时区
        self.Caption:= DateTimeToStr(ddate);
    
        //设置时间
        SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SSHORTDATE, 'yyyy.MM.dd');
        Application.UpdateFormatSettings := False;
        DateTimeToSystemTime(ddate,systemtime);
        SetLocalTime(systemtime);
      finally
        sl.Free;
        IdHttp.Free;
        ResponseStream.Free;
      end;
    end;
    
    {procedure TForm1.btn1Click(Sender: TObject);
    var
     systemtime:Tsystemtime;
      DateTime:TDateTime;
    begin
      SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SSHORTDATE, 'yyyy:MM:dd');
      Application.UpdateFormatSettings := False;
      DateTime:=Now;
      DateTime:= IncMinute(DateTime,-1);
      DateTimeToSystemTime(DateTime,systemtime);
      SetLocalTime(systemtime);
    end;}
    end.
    书搞进脑袋 创新 创造; 积极
  • 相关阅读:
    钓鱼
    Webpack3.x升级至 4.x 小记
    设计模式六大原则(总结)
    Spring Data RedisTemplate抛出SerializationException
    pcap文件过滤、分割、合并处理工具
    如何查看Linux服务器的负载
    java8 List按照两个属性第一个属性升序排序第二个属性降序排序
    什么是云原生
    vuecli创建vue3项目
    nfs 问题汇总
  • 原文地址:https://www.cnblogs.com/tobetterlife/p/12169881.html
Copyright © 2020-2023  润新知