Buscando a data e hora oficial de Brasilha

8 respostas
F

Boa Tarde.
Eu sou novo no Java e estou com uma duvida. Provavelmente alguem ja deve ter perguntado algo parecido.

É possivel buscar a data e hora oficial de Brasília (Buscando da internet) ou apenas a data do sistema ?

Eu sei buscar a data do sistema, mas preciso ter 100 % de certeza que a data e hora esteja correto. Se eu eu modificar a hora no windows, a meu metodo ja estaria inconsistente.

Agradeço a ajuda

8 Respostas

F

Valeu Cara… Ja arrumei a palavra escrita errada .Referente ao site, não tem nada nele que possa me ajudar.

arthurgon

Então meu amigo...sei como é quando se é iniciante. Não se preocupe...o GUJ nasceu no intuito de ajudar e tirar as dúvidas mesmo.
Vamos lá...você consegue de duas ou até mais formas...depende do quanto você for se aprofundar. Eu particularmente utilizo bastante as bibliotecas do Joda. A documentação é bem simples de entender. Também você pode utilizar "GregorianCalendar ", que é a mais conhecida.

1ª possibilidade utilizando Joda:

import java.util.Date;
import java.util.TimeZone;

import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;

public class TestesDatas {

	
	 private static final String TIME_ZONE = "America/Sao_Paulo";  
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		TimeZone.setDefault(TimeZone.getTimeZone(TIME_ZONE));  
        DateTimeZone.setDefault(DateTimeZone.forID(TIME_ZONE));  
          
        Date data = new Date();  
        DateTime dataInicial = new DateTime();  
        Date dataConvertida = dataInicial.toDate();  
        DateTime dataReconvertida = new DateTime(dataConvertida);  
  
        Date teste = new Date(dataInicial.getMillis());  
          
        System.out.println("Data simples:      " + data);  
        System.out.println("Data inicial:      " + dataInicial);  
        System.out.println("Data converitda:   " + dataConvertida);  
        System.out.println("Data reconvertida: " + dataReconvertida);  
        System.out.println("Data teste:        " + teste);  

	}

}

2ª possibilidade utilizando GregorianCalendar :

import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
import java.util.Locale;

public class DataFormatada {

	
	private String data;  
	Locale locale = new Locale("pt","BR");  
	GregorianCalendar calendar = new GregorianCalendar();  
	
	 public void data(String formato){  
         
	      SimpleDateFormat formatador = new SimpleDateFormat(formato,locale);  
	      setData(formatador.format(calendar.getTime()));
	       System.out.println(data);
	   }  
	        
	   /** 
	    * Retorna a data formatada 
	    * @return 
	    */  
	   public String getData() {  
	     return data;  
	   }  
	     
	   /** 
	    * Seta a data do log 
	    * @param newDataLog 
	    */  
	   public void setData(String newData) {  
	     this.data = newData;  
	   }  
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		DataFormatada d=new DataFormatada();
		d.data("dd/MM/yyyy" + "-" + " " + "h:mm - a");
	}

}

Espero ter ajudado.

Um abraço.

F

Boa Tarde arthurgon. Valew pelo help.

Contudo a segunda forma que você me mostrou, usa a data do sistema e não a oficial. Eu Alterei a data do windows para o dia 4 e o programa trouxe dia 4 e nao o dia de hoje .
ja a primeira forma, utiliza um pacote que eu nao tenho. é necessario baixar da net esse pacote ou ele é nativo ?

Aguardo retorno

nel

fabio_lpontes:
Boa Tarde arthurgon. Valew pelo help.

Contudo a segunda forma que você me mostrou, usa a data do sistema e não a oficial. Eu Alterei a data do windows para o dia 4 e o programa trouxe dia 4 e nao o dia de hoje .
ja a primeira forma, utiliza um pacote que eu nao tenho. é necessario baixar da net esse pacote ou ele é nativo ?

Aguardo retorno

Oi

Muito provavelmente você precise utilizar algo como Web Service. Terás de efetuar uma consulta em um servidor de brasilia (não que esteja geograficamente lá!) para que lhe forneça a data e hora atual. Podes fazer isso via Socket e etc, mas não sei se seria tão simples assim.

De resto é pesquisar na net mesmo.
Pessoal está achando que você quer pegar o horário da máquina…

Abraços.

nel

Oi!

Tem este Web Service: http://www.nanonull.com/TimeService/TimeService.asmx
Método: getUTCTime

Diminua 3 horas devido ao fuso horário.
O único problema é que não sei ao certo a cidade que corresponde ao horário e não vi retornar a data, somente a hora.
Mas seria essa a idéia né?

Abraços.

arthurgon

O nel tem razão…eu também achei que fosse da máquina. Sendo assim não vejo outra forma senão via webservice. Só pra completar…a biblioteca do primeiro exemplo que citei se chama Joda e é fácil de baixar.

Abs.

WellingtonRamos

De Brasilha eu não sei, mas de Brasília você pode verificar neste site se eles disponibilizam algo: http://www.horariodebrasilia.org/

WellingtonRamos

fabio_lpontes:
Valeu Cara… Ja arrumei a palavra escrita errada .Referente ao site, não tem nada nele que possa me ajudar.
No caso, sugiro entrar em contato com eles pra ver se eles fornecem algo para ajudá-lo.

Achei também este site: http://24timezones.com/pt_horamundial/brasilia_hora_local.php onde tem mais informações: http://24timezones.com/download_map_clock.htm mas creio que tenha que pagar pra usar.

Criado 3 de agosto de 2011
Ultima resposta 3 de ago. de 2011
Respostas 8
Participantes 4