Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
rafmattos Colaborador

Registrado: Quinta-Feira, 11 de Fevereiro de 2010 Mensagens: 3416 Localização: Campo Grande/MS
|
Enviada: Qua Mai 11, 2011 3:45 pm Assunto: Retornar a Data da Internet [RESOLVIDO] |
|
|
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 |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qua Mai 11, 2011 4:31 pm Assunto: |
|
|
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 |
|
 |
rafmattos Colaborador

Registrado: Quinta-Feira, 11 de Fevereiro de 2010 Mensagens: 3416 Localização: Campo Grande/MS
|
Enviada: Qua Mai 11, 2011 4:45 pm Assunto: |
|
|
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 |
|
 |
rafmattos Colaborador

Registrado: Quinta-Feira, 11 de Fevereiro de 2010 Mensagens: 3416 Localização: Campo Grande/MS
|
Enviada: Qua Mai 11, 2011 4:48 pm Assunto: |
|
|
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 |
|
 |
rafmattos Colaborador

Registrado: Quinta-Feira, 11 de Fevereiro de 2010 Mensagens: 3416 Localização: Campo Grande/MS
|
Enviada: Qua Mai 11, 2011 4:52 pm Assunto: |
|
|
vlw IMEX |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qua Mai 11, 2011 4:53 pm Assunto: |
|
|
blz |
|
Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
Voltar ao Topo |
|
 |
leo_cj Colaborador

Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Ter Ago 15, 2017 4:34 pm Assunto: |
|
|
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 |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
Voltar ao Topo |
|
 |
leo_cj Colaborador

Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Ter Ago 15, 2017 5:54 pm Assunto: |
|
|
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 |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qua Ago 16, 2017 1:30 pm Assunto: |
|
|
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 |
|
 |
leo_cj Colaborador

Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Qua Ago 16, 2017 2:00 pm Assunto: |
|
|
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 |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qua Ago 16, 2017 2:56 pm Assunto: |
|
|
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 |
|
 |
leo_cj Colaborador

Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Qua Ago 16, 2017 3:27 pm Assunto: |
|
|
Opa, por nada, que bom que funcionou |
|
Voltar ao Topo |
|
 |
|