Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Delphi: Система, Windows API > Как получить дату и время из Интернета


Автор: DDim1000 04.03.21, 09:25
Здравствуйте!
Подскажите, пожалуйста, как получить дату и время из интернета?

Автор: ^D^ima 04.03.21, 10:33
На форму кинь idTime (Indy компонент)
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    var
    lts:TDateTime;
    LTime:TIdTime;
    begin
    LTime := TIdTime.Create(nil);
      try
        LTime.Host := 'time.nist.gov';
        LTS := LTime.DateTime;
        ShowMessage(DateTimeToStr(LTS));
        // do something
      finally
        LTime.Free;
      end;
    end;

Автор: DDim1000 04.03.21, 10:57
^D^ima, спасибо большое! Все получилось!!!

Автор: DDim1000 04.03.21, 16:58
Почему-то при повторном запуске программы, выскакивает такая ошибка: Socket Error # 10054 Connection reset by peer. Как исправить?
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
        LTime.Host := 'time.nist.gov';
        LTS := LTime.DateTime;
        //label2.Caption:=DateTimeToStr(LTS);
        // do something
        LTime.Disconnect();

Автор: Mr.Delphist 05.03.21, 11:11
Может, там лимит есть на число запросов? В любом случае, надо иметь не один time.nist.gov, а несколько NTP-серверов для опроса, чтобы как раз такие нештатные ситуации отрабатывать и переспрашивать у другого сервака в списке.

Автор: vvs777 15.01.22, 14:04
Можно еще на низком уровне.
В общем случае копать надо в сторону анализа работы ntp (Linux) или выше упомянутых компонентов.
Реализуется такое отправкой одного UDP запроса и получением ответа, но ответ часто не приходит потому нужно повторно отправлять.

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)