Fala pessoal, eu to com um problema que eu não estou conseguindo resolver. Numa parte do meu programa eu preciso pegar a hora, mas ela não pode ser a do computador. Qual a maneira mais simples de se fazer isso? Não precisa por o codigo aqui se não quiser só falar o que pesquisar já esta blz ;D
Bom dia Amigo vc pode fazer o uso da biblioteca Apache Commons Net
link http://commons.apache.org/proper/commons-net/download_net.cgi
segue código
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Date;
import org.apache.commons.net.ntp.NTPUDPClient;
import org.apache.commons.net.ntp.TimeInfo;
import java.text.*;
public class ExJodaTime {
public static void main(String[] args) throws IOException {
try {
SimpleDateFormat sdf1= new SimpleDateFormat("dd/MM/yyyy HH:MM");//se quiser apenas a hora apague o formato da data
String ntpServer = "a.st1.ntp.br";//servidor de horario brasileiro
NTPUDPClient timeClient = new NTPUDPClient();
InetAddress inetAddress = InetAddress.getByName(ntpServer);
TimeInfo timeInfo = timeClient.getTime(inetAddress);
long returnTime = timeInfo.getReturnTime();
Date time = new Date(returnTime);
System.out.println("Hora para " + ntpServer + ": " + sdf1.format(time));
} catch (UnknownHostException ex) {
}
}
}
Eu fiz o download do: commons-net-3.3-bin.zip, mas não sei onde coloca-lo =/. Eu procurei no google mas não encontrei conteúdo que ajudasse.
Então eu gostaria saber, onde e como eu coloco essa pasta que foi extraída do download que eu fiz para que o eclipse reconheça?
blz cara acabei de testa o codigo q nosso amigo passou, ele funciona o seu problema agora é importar a biblioteca,
você baixou o “commons-net-3.3-bin.zip” eu testei exatamente com essa biblioteca nele tem um arquivo “commons-net-3.3.jar” é esse arquivo que você deve importar no seu projeto, se você está usando netBeans va no seu projeto clique com o botão direito em cima de bibliotecas e “add jar/pasta” e selecione o arquivo que eu disse “commons-net-3.3.jar” feito isso pronto basta copiar o código do nosso amigo em cima e vai funcionar.
Consegui, valeu! O código funcionou certinho pegando a hora, mas ta igual ao date, porque quando eu mudo a hora do PC o programa muda a hora também =/. Eu precisaria de alguma forma fazer com que mesmo mudando o horário do PC, o programa ainda seguisse o horário de brasília normal. Sera tem como fazer isso? Eu tentei pegar desse site aqui: http://www.horariodebrasilia.org/ mas não consegui =/
segue tuto como add blibioteca ao eclipse
www.flaviojmendes.com/blog/2009/08/24/tutorial-adicionar-biblioteca-no-eclipse/
[quote=Janerson]segue tuto como add blibioteca ao eclipse
www.flaviojmendes.com/blog/2009/08/24/tutorial-adicionar-biblioteca-no-eclipse/[/quote]
Valeu, o problema da biblioteca esta resolvido. Mas ainda tem o seguinte problema:
[quote=rodazzz][quote=Janerson]segue tuto como add blibioteca ao eclipse
www.flaviojmendes.com/blog/2009/08/24/tutorial-adicionar-biblioteca-no-eclipse/[/quote]
Valeu, o problema da biblioteca esta resolvido. Mas ainda tem o seguinte problema:
bom dia amigo!!!
estranho isso
fiz o teste aqui com a hora errada e deu certo e depois fiz o teste novamente para ter certeza e não deu certo
vou pesquisar e estudar assim que resolver te dou um retorno
public Date buscaDataHora() {
// Lista de servidores do NTP.br gratuitos do observatório nacional
NTPUDPClient timeClient = new NTPUDPClient();
InetAddress inetAddress;
try {
inetAddress = InetAddress.getByName("a.st1.ntp.br");
} catch (UnknownHostException e) {
try {
inetAddress = InetAddress.getByName("b.st1.ntp.br");
} catch (UnknownHostException e1) {
try {
inetAddress = InetAddress.getByName("c.st1.ntp.br");
} catch (UnknownHostException e2) {
try {
inetAddress = InetAddress.getByName("d.st1.ntp.br");
} catch (UnknownHostException e3) {
try {
inetAddress = InetAddress.getByName("a.ntp.br");
} catch (UnknownHostException e4) {
try {
inetAddress = InetAddress.getByName("b.ntp.br");
} catch (UnknownHostException e5) {
try {
inetAddress = InetAddress.getByName("c.ntp.br");
} catch (UnknownHostException e6) {
try {
inetAddress = InetAddress.getByName("gps.ntp.br");
} catch (UnknownHostException e7) {
return null;
// meio tosco mas foi o que pensei agora!
}
}
}
}
}
}
}
}
TimeInfo timeInfo;
try {
timeInfo = timeClient.getTime(inetAddress);
} catch (IOException e) {
return null;
}
long returnDataHora = timeInfo.getReturnTime();
Date retorno = new Date(returnDataHora);
return retorno;
}
Segue também uma lista de outros hosts mundiais e o jar necessário.
[quote=alcionj]
Segue também uma lista de outros hosts mundiais e o jar necessário.[/quote]
Sim mas funciona e nao funciona
se vc mudar a hora do pc o codigo nao retorna a hora do servidor ntp
e sim a hora do pc
Por que não coloca uma webcam e, na frente dela, um relógio? Aí você pega a hora ‘fora do computador’.