Tem alguma forma de pegar a hora desse site: http://www.horariodebrasilia.org Com o JAVA?
tem sim amigo segue:
package httpsslconnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.io.*;
import java.net.HttpURLConnection;
/**
* Classe que faz conexão em URL's HTTP.
*
* @author Dilnei Cunha.
*/
public class HttpConnection {
/**
* Método principal que executa a aplicação.
*
* @param args
*/
public static void main(String[] args) {
new HttpConnection().conectaHttp();
}
/**
* Método responsavel por abrir a conexão a uma URL HTTP e obter um
* inputstream dos dados de retorno.
*/
private void conectaHttp() {
String urlHttps = "http://www.horariodebrasilia.org/";
URL url;
try {
url = new URL(urlHttps);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
buscaConteudoDaPagina(con);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* Método que imprime o conteúdo no console.
*
* @param httpURLConnection
*/
private void buscaConteudoDaPagina(HttpURLConnection httpURLConnection) {
if (httpURLConnection != null) {
try {
System.out.println("****** Conteúdo da URL HTTP ********");
BufferedReader br = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));
StringBuilder builder = new StringBuilder();
String input;
while ((input = br.readLine()) != null) {
builder.append(input);
}
br.close();
String conteudo = builder.toString();
int posicaoInicial = conteudo.indexOf("<p id='relogio'>") + 16;
int posicaoFinal = conteudo.indexOf("</p>");
String hora = conteudo.substring(posicaoInicial, posicaoFinal);
System.out.println("A hora do site é: " + hora);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
Ops Desculpa dupliquei sem querer.
Abaixo o post original
esse horario é o horario brasileiro de brasilia.
você usar o date
pegar horas minutos e segundos e dia_da_semana
e usar um swith neles para mostrar do jeito que ta lá!
com SimpleDateFormat, fica simples.
procura por SimpleDateFormat
[code]
import java.util.Date;
import java.text.SimpleDateFormat;
public class data
{
String mes, dia, ano, dia_semana, hora;
SimpleDateFormat horaformatada = new SimpleDateFormat(“HH:mm:ss”);
public void le_hora()
{
Date horaAtual = new Date();
hora = horaformatada.format(horaAtual);
}
public void le_data()
{
Date data = new Date();
dia = ""+data.getDate();
ano = ""+(1900 + data.getYear());
switch(data.getMonth())
{
case 0: mes = "Janeiro";break;
case 1: mes = "Fevereiro";break;
case 2: mes = "Março";break;
case 3: mes = "Abril";break;
case 4: mes = "Maio";break;
case 5: mes = "Junho";break;
case 6: mes = "Julho";break;
case 7: mes = "Agosto";break;
case 8: mes = "Setembro";break;
case 9: mes = "Outubro";break;
case 10: mes = "Novembro";break;
case 11: mes = "Dezembro";break;
}
switch(data.getDay())
{
case 0: dia_semana = "Domingo";break;
case 1: dia_semana = "Segunda-Feira";break;
case 2: dia_semana = "Terça-Feira";break;
case 3: dia_semana = "Quarta-Feira";break;
case 4: dia_semana = "Quinta-Feira";break;
case 5: dia_semana = "Sexta-Feira";break;
case 6: dia_semana = "Sábado";break;
}
}
}[/code]
Com essa classe acima a hora será mostrada assim:
Segunda-Feira, 20 de Maio de 2013 12:32:45
Qualquer duvida é só postar!
Se for para pegar o horário certo, eu recomendo usar próprio Network Time Protocol, que é o padrão mundial para sincronizar data e hora.
Duas formas de fazer isso:
- Ligar a atualização automática de horário no teu computador. Depois executar um new Date() em cima disso.
- Usar um cliente Java de NTP.
Edit:
painhoo2, todo esse código que você fez dá pra fazer só com o SimpleDateFormat. Ele não serve só para formatar hora, ele também escreve datas e dias da semana por extenso. Veja o Javadoc dele.
[quote=Bruno Laturner]Se for para pegar o horário certo, eu recomendo usar próprio Network Time Protocol, que é o padrão mundial para sincronizar data e hora.
Duas formas de fazer isso:
- Ligar a atualização automática de horário no teu computador. Depois executar um new Date() em cima disso.
- Usar um cliente Java de NTP.
Edit:
painhoo2, todo esse código que você fez dá pra fazer só com o SimpleDateFormat. Ele não serve só para formatar hora, ele também escreve datas e dias da semana por extenso. Veja o Javadoc dele.[/quote]
Hehehe, Desculpa se não é o metodo mais certo para se fazer isso, mais essa foi a gambiarra achada para eu conseguir fazer isso em java!
Ainda estou meio que Ingatinhando em java!
Se você soubesse o quanto eu pesquisei e lutei para conseguir isso ai, foi uma verdadeira briga!
Obrigado painhoo2 e Bruno Laturner! Mas eu preciso de uma hora que não seja a do próprio computador.
[quote=aix]tem sim amigo segue:
[code]
package httpsslconnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.io.*;
import java.net.HttpURLConnection;
/**
-
Classe que faz conexão em URL’s HTTP.
-
@author Dilnei Cunha.
*/
public class HttpConnection {/**
- Método principal que executa a aplicação.
-
@param args
*/
public static void main(String[] args) {
new HttpConnection().conectaHttp();
}
/**
-
Método responsavel por abrir a conexão a uma URL HTTP e obter um
-
inputstream dos dados de retorno.
*/
private void conectaHttp() {String urlHttps = “http://www.horariodebrasilia.org/”;
URL url;
try {url = new URL(urlHttps); HttpURLConnection con = (HttpURLConnection) url.openConnection(); buscaConteudoDaPagina(con);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
-
Método que imprime o conteúdo no console.
-
@param httpURLConnection
*/
private void buscaConteudoDaPagina(HttpURLConnection httpURLConnection) {
if (httpURLConnection != null) {try { System.out.println("****** Conteúdo da URL HTTP ********"); BufferedReader br = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream())); StringBuilder builder = new StringBuilder(); String input; while ((input = br.readLine()) != null) { builder.append(input); } br.close(); String conteudo = builder.toString(); int posicaoInicial = conteudo.indexOf("<p id='relogio'>") + 16; int posicaoFinal = conteudo.indexOf("</p>"); String hora = conteudo.substring(posicaoInicial, posicaoFinal); System.out.println("A hora do site é: " + hora); } catch (IOException e) { e.printStackTrace(); }
}
}
}
[/code][/quote]
Funcionou, mas ele sempre pega o mesmo horário:
****** Conteúdo da URL HTTP ********
A hora do site é: 05:43:40
Tentei descobrir o por quê mas não consegui!
Dê uma olhada no link que postei, na parte de Attachments.
[quote=rodazzz][quote=aix]tem sim amigo segue:
[/quote]
Funcionou, mas ele sempre pega o mesmo horário:
****** Conteúdo da URL HTTP ********
A hora do site é: 05:43:40
Tentei descobrir o por quê mas não consegui![/quote]
Você quer que a hora fique atualizando é isso?
EX: 05:43:40,05:43:41,05:43:42,05:43:43 e etc…
se for isso você pode usar o timerbean.jar
procura no google que você encontra ele.
espero ter ajudado.
[quote=painhoo2][quote=rodazzz][quote=aix]tem sim amigo segue:
[/quote]
Funcionou, mas ele sempre pega o mesmo horário:
****** Conteúdo da URL HTTP ********
A hora do site é: 05:43:40
Tentei descobrir o por quê mas não consegui![/quote]
Você quer que a hora fique atualizando é isso?
EX: 05:43:40,05:43:41,05:43:42,05:43:43 e etc…
se for isso você pode usar o timerbean.jar
procura no google que você encontra ele.
espero ter ajudado. [/quote]
Na verdade atualizar não é o problema. O problema mesmo é que quando puxa a hora do site, ela sempre vem como 05:43:40. Até agora não consegui entender o por quê disso.