Utilizar Date e Calendar[RESOLVIDO]

4 respostas
Acatao

Olá Galera,

Estou precisando de uma ajuda para fazer umas conversões de Datas.

Eu recebo uma data como String no formato dd/MM/yyyy HH:mm:ss.

Ai eu utilizo o seguinte código para formatá-la do jeito que eu quero:

String a = data; 
		SimpleDateFormat sdf = new SimpleDateFormat( "dd/MM/yyyy HH:mm:ss" );   
		Date dataNormal= sdf.parse(a);
		     

		SimpleDateFormat sdfs = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );   
		String b = sdfs.format( dataNormal );

Agora eu preciso adicionar x horas na data antes de retorná-la no formato yyyy-MM-dd HH:mm:ss

Tentei utilizar o código abaixo:

String a = "13/06/2012 16:00:00";
				
		
		SimpleDateFormat sdf = new SimpleDateFormat( "dd/MM/yyyy HH:mm:ss" );
		
		Date dataNormal= sdf.parse(a);
		
		Calendar c = new GregorianCalendar();
		
		c.setTime(dataNormal);
		
		c.add(Calendar.HOUR, 3);
		
		SimpleDateFormat df = new SimpleDateFormat();
        df.applyPattern("dd/MM/yyyy HH:mm:ss");
        String data3 = df.format(c.getTime());
        
        System.out.println(data3);

Ele imprime:

13/06/2012 19:00:00

Porém preciso dessa data no formato yyyy-MM-dd HH:mm:ss ja tentei fazer assim:

Date data3 = df.format(c.getTime());
                
        SimpleDateFormat sdfs = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );
		
		String b = sdfs.parse(data3);

Porém o c.getTime() da erro porque ele retorna uma string e estou falando que a variável é Date

Alguem tem alguma dica ? Se tiver um jeito melhor de fazer posta ae :smiley: Vlw!

4 Respostas

Acatao

Consegui fazer assim:

String a = "13/06/2012 16:00:00";
				
		
		SimpleDateFormat sdf = new SimpleDateFormat( "dd/MM/yyyy HH:mm:ss" );
		
		Date dataNormal= sdf.parse(a);
		
		Calendar c = new GregorianCalendar();
		
		c.setTime(dataNormal);
		
		c.add(Calendar.HOUR, 3);
		
		SimpleDateFormat df = new SimpleDateFormat();
        df.applyPattern("dd/MM/yyyy HH:mm:ss");
       
        String data3 = df.format(c.getTime());
          
        String formato = "dd/MM/yyyy HH:mm:ss";  
        Date date = new SimpleDateFormat(formato).parse(data3); 
        
        SimpleDateFormat sdfs = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );   
		String b = sdfs.format( date );
		
        System.out.println(b);

Ele retorna:

2012-06-13 19:00:00

Tem um jeito melhor ? Vlw !

E

É mais ou menos isso mesmo (dá para tirar umas 7 linhas desse código, mas a essência é essa mesma).

Acatao

Acatao:
Olá Galera,

Estou precisando de uma ajuda para fazer umas conversões de Datas.

Eu recebo uma data como String no formato dd/MM/yyyy HH:mm:ss.

Ai eu utilizo o seguinte código para formatá-la do jeito que eu quero:

String a = data; 
		SimpleDateFormat sdf = new SimpleDateFormat( "dd/MM/yyyy HH:mm:ss" );   
		Date dataNormal= sdf.parse(a);
		     

		SimpleDateFormat sdfs = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );   
		String b = sdfs.format( dataNormal );

Agora eu preciso adicionar x horas na data antes de retorná-la no formato yyyy-MM-dd HH:mm:ss

Tentei utilizar o código abaixo:

String a = "13/06/2012 16:00:00";
				
		
		SimpleDateFormat sdf = new SimpleDateFormat( "dd/MM/yyyy HH:mm:ss" );
		
		Date dataNormal= sdf.parse(a);
		
		Calendar c = new GregorianCalendar();
		
		c.setTime(dataNormal);
		
		c.add(Calendar.HOUR, 3);
		
		SimpleDateFormat df = new SimpleDateFormat();
        df.applyPattern("dd/MM/yyyy HH:mm:ss");
        String data3 = df.format(c.getTime());
        
        System.out.println(data3);

Ele imprime:

13/06/2012 19:00:00

Porém preciso dessa data no formato yyyy-MM-dd HH:mm:ss ja tentei fazer assim:

Date data3 = df.format(c.getTime());
                
        SimpleDateFormat sdfs = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );
		
		String b = sdfs.parse(data3);

Porém o c.getTime() da erro porque ele retorna uma string e estou falando que a variável é Date

Alguem tem alguma dica ? Se tiver um jeito melhor de fazer posta ae :smiley: Vlw!

Acatao

Obrigado !!!

Criado 14 de junho de 2012
Ultima resposta 14 de jun. de 2012
Respostas 4
Participantes 2