ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Retornar a Data da Internet [RESOLVIDO]
Ir à página 1, 2  Próximo
 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
rafmattos
Colaborador
Colaborador


Registrado: Quinta-Feira, 11 de Fevereiro de 2010
Mensagens: 3416
Localização: Campo Grande/MS

MensagemEnviada: Qua Mai 11, 2011 3:45 pm    Assunto: Retornar a Data da Internet [RESOLVIDO] Responder com Citação

Pessoal Peguei a Ideia desse mossane, só modifiquei um pouco
http://www.activedelphi.com.br/forum/viewtopic.php?t=48355&sid=9d20500d8bd80c56c20c8efa2e225b29



minha duvida é o seguinte é esse servidor 'time.nist.gov' ele retorna a data baseando no fuso horario da onde alguem sabe?
pq tenho muitos cliente que entra no sistema de madrugada eo sistema não pode errar a data

Código:

function RetornaDataServNet : TDate;
var
   sdata:string;
   IdDayTime1 : TIdDayTime;
begin
   try
     try
       IdDayTime1 := TIdDayTime.Create(nil);
       IdDayTime1.Host := 'time.nist.gov';
       sdata:=IdDayTime1.DayTimeStr;
       sdata:=Trim(Copy(sdata,Pos(' ',sData),9));
       Result := StrToDate( StringReplace(sData,'-','/',[rfReplaceAll]) );
     except
       Result := Date;
     end;
   finally
     IdDayTime1.Free;
   end;
end;



desde já agradeço


Editado pela última vez por rafmattos em Qua Mai 11, 2011 4:48 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Mai 11, 2011 4:31 pm    Assunto: Responder com Citação

Você também pode obter a data e hora da internet (fonte: http://ntp.br) utilizando esta função:

Código:
function ObterDataHoraInternet: TDateTime;
var
  IDSntp: TIDSntp;
begin
IDSntp := TIDSntp.Create(nil);
try
    IDSntp.Host := 'pool.ntp.br';
    Result := IDSntp.DateTime;
finally
    IDSntp.Free;
end;
end;


Espero que seja útil.


Editado pela última vez por imex em Qua Nov 01, 2023 12:08 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
rafmattos
Colaborador
Colaborador


Registrado: Quinta-Feira, 11 de Fevereiro de 2010
Mensagens: 3416
Localização: Campo Grande/MS

MensagemEnviada: Qua Mai 11, 2011 4:45 pm    Assunto: Responder com Citação

imex escreveu:
Você também pode obter a data e hora da internet (fonte: http://ntp.br) utilizando esta função:

Código:
function ObterDataHoraInternet: TDateTime;
var
  IDSntp: TIDSntp;
begin
IDSntp := TIDSntp.Create(nil);
try
    IDSntp.Host := 'pool.ntp.br';
    Result := IDSntp.DateTime;
finally
    IDSntp.Free;
end;
end;


Espero que seja útil.



pow gostei Show de bola!!!
vc save se http://ntp.br ele pega o Fuso Horario baseado na minha região?

mas pelo visto sim ele pego a hora certinha tb
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
rafmattos
Colaborador
Colaborador


Registrado: Quinta-Feira, 11 de Fevereiro de 2010
Mensagens: 3416
Localização: Campo Grande/MS

MensagemEnviada: Qua Mai 11, 2011 4:48 pm    Assunto: Responder com Citação

rafmattos escreveu:
imex escreveu:
Você também pode obter a data e hora da internet (fonte: http://ntp.br) utilizando esta função:

Código:
function ObterDataHoraInternet: TDateTime;
var
  IDSntp: TIDSntp;
begin
IDSntp := TIDSntp.Create(nil);
try
    IDSntp.Host := 'pool.ntp.br';
    Result := IDSntp.DateTime;
finally
    IDSntp.Free;
end;
end;


Espero que seja útil.



pow gostei Show de bola!!!
vc save se http://ntp.br ele pega o Fuso Horario baseado na minha região?

mas pelo visto sim ele pego a hora certinha tb


RESOLVIDO


ja vi ele ta CERTINHO
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
rafmattos
Colaborador
Colaborador


Registrado: Quinta-Feira, 11 de Fevereiro de 2010
Mensagens: 3416
Localização: Campo Grande/MS

MensagemEnviada: Qua Mai 11, 2011 4:52 pm    Assunto: Responder com Citação

vlw IMEX
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Mai 11, 2011 4:53 pm    Assunto: Responder com Citação

blz
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Dom Jul 10, 2011 9:58 pm    Assunto: Responder com Citação

imex escreveu:
blz
Vou ver se consigo instalar a paleta Indy no Delphi 5

Talvez ajude a resolver meu problema

Achei o site do fabricante do pacote Indy
http://www.indyproject.org/index.en.aspx

Espero que de certo
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Ter Ago 15, 2017 4:24 pm    Assunto: Responder com Citação

Depois que eu pego a data/hora do sistema da function
ObterDataHoraInternet

Tem como eu atualizar o windows com a mesma data que vem da internet via delphi?
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leo_cj
Colaborador
Colaborador


Registrado: Sábado, 26 de Março de 2011
Mensagens: 1335

MensagemEnviada: Ter Ago 15, 2017 4:34 pm    Assunto: Responder com Citação

Da uma olhada na função:
Código:
procedure TForm1.Button1Click(Sender: TObject);
var
  SystemTime: TSystemTime;
  NewTime, NewDate: string;
begin
  NewTime := '12:00:00';
  NewDate := '01.01.2006'; 
  DateTimeToSystemTime(StrToDate(NewDate) + StrToTime(NewTime), SystemTime);
  SetLocalTime(SystemTime);
  // Tell windows, that the Time changed!
  PostMessage(HWND_BROADCAST, WM_TIMECHANGE, 0, 0); // *
end;


A proc foi retirada do site:
http://www.delphitricks.com/source-code/windows/change_the_system_time.html
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Ter Ago 15, 2017 5:26 pm    Assunto: Responder com Citação

leo_cj escreveu:
Da uma olhada na função:
Código:
procedure TForm1.Button1Click(Sender: TObject);
var
  SystemTime: TSystemTime;
  NewTime, NewDate: string;
begin
  NewTime := '12:00:00';
  NewDate := '01.01.2006'; 
  DateTimeToSystemTime(StrToDate(NewDate) + StrToTime(NewTime), SystemTime);
  SetLocalTime(SystemTime);
  // Tell windows, that the Time changed!
  PostMessage(HWND_BROADCAST, WM_TIMECHANGE, 0, 0); // *
end;


A proc foi retirada do site:
http://www.delphitricks.com/source-code/windows/change_the_system_time.html


Não altera o relogio do windows esta função.

Obrigado.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leo_cj
Colaborador
Colaborador


Registrado: Sábado, 26 de Março de 2011
Mensagens: 1335

MensagemEnviada: Ter Ago 15, 2017 5:54 pm    Assunto: Responder com Citação

Fiz um teste aqui utilizando Windows 7 + Delphi 2010 e funcionou, a unica coisa é que não busquei a hora da internet, mas passei uma hora manualmente.

ex utilizado:
Código:
procedure TForm1.Button4Click(Sender: TObject);
var
  SystemTime: TSystemTime;
begin
  DateTimeToSystemTime(IncHour(now, -1), SystemTime);
  SetLocalTime(SystemTime);
  // Tell windows, that the Time changed!
  PostMessage(HWND_BROADCAST, WM_TIMECHANGE, 0, 0); // *
end;


obs: Necessário declarar a biblioteca DateUtils na uses do formulário para utilizar a função IncHour
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qua Ago 16, 2017 1:30 pm    Assunto: Responder com Citação

leo_cj escreveu:
Fiz um teste aqui utilizando Windows 7 + Delphi 2010 e funcionou, a unica coisa é que não busquei a hora da internet, mas passei uma hora manualmente.

ex utilizado:
Código:
procedure TForm1.Button4Click(Sender: TObject);
var
  SystemTime: TSystemTime;
begin
  DateTimeToSystemTime(IncHour(now, -1), SystemTime);
  SetLocalTime(SystemTime);
  // Tell windows, that the Time changed!
  PostMessage(HWND_BROADCAST, WM_TIMECHANGE, 0, 0); // *
end;


obs: Necessário declarar a biblioteca DateUtils na uses do formulário para utilizar a função IncHour

Então testei no windows 10 e nada aconteceu, não alterou a data no relógio do windows nem na versão 8.0 e 8.1 do windows, a versão 7 não tenho aqui pra testar.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leo_cj
Colaborador
Colaborador


Registrado: Sábado, 26 de Março de 2011
Mensagens: 1335

MensagemEnviada: Qua Ago 16, 2017 2:00 pm    Assunto: Responder com Citação

adriano_servitec escreveu:
leo_cj escreveu:
Fiz um teste aqui utilizando Windows 7 + Delphi 2010 e funcionou, a unica coisa é que não busquei a hora da internet, mas passei uma hora manualmente.

ex utilizado:
Código:
procedure TForm1.Button4Click(Sender: TObject);
var
  SystemTime: TSystemTime;
begin
  DateTimeToSystemTime(IncHour(now, -1), SystemTime);
  SetLocalTime(SystemTime);
  // Tell windows, that the Time changed!
  PostMessage(HWND_BROADCAST, WM_TIMECHANGE, 0, 0); // *
end;


obs: Necessário declarar a biblioteca DateUtils na uses do formulário para utilizar a função IncHour

Então testei no windows 10 e nada aconteceu, não alterou a data no relógio do windows nem na versão 8.0 e 8.1 do windows, a versão 7 não tenho aqui pra testar.


Adriano, fiz um teste aqui, para funcionar no Windows 10, precisa executar a aplicação com privilégio de Administrador
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qua Ago 16, 2017 2:56 pm    Assunto: Responder com Citação

leo_cj escreveu:
adriano_servitec escreveu:
leo_cj escreveu:
Fiz um teste aqui utilizando Windows 7 + Delphi 2010 e funcionou, a unica coisa é que não busquei a hora da internet, mas passei uma hora manualmente.

ex utilizado:
Código:
procedure TForm1.Button4Click(Sender: TObject);
var
  SystemTime: TSystemTime;
begin
  DateTimeToSystemTime(IncHour(now, -1), SystemTime);
  SetLocalTime(SystemTime);
  // Tell windows, that the Time changed!
  PostMessage(HWND_BROADCAST, WM_TIMECHANGE, 0, 0); // *
end;


obs: Necessário declarar a biblioteca DateUtils na uses do formulário para utilizar a função IncHour

Então testei no windows 10 e nada aconteceu, não alterou a data no relógio do windows nem na versão 8.0 e 8.1 do windows, a versão 7 não tenho aqui pra testar.


Adriano, fiz um teste aqui, para funcionar no Windows 10, precisa executar a aplicação com privilégio de Administrador

Verdade leo_cj ai funciona.

Obrigado
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leo_cj
Colaborador
Colaborador


Registrado: Sábado, 26 de Março de 2011
Mensagens: 1335

MensagemEnviada: Qua Ago 16, 2017 3:27 pm    Assunto: Responder com Citação

Opa, por nada, que bom que funcionou
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Ir à página 1, 2  Próximo
Página 1 de 2

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB