Problema com a classe Calendar

Olá,

Estou com um código curto e direto que utiliza a classe “Calendar”. Ele estava funcionando
normalmente, mas de repente enquanto utilizo a classe “Calendar” do Java e estou programando, o código resolveu dar erro e não sei como resolver.

Imagem:

Código-Fonte:

package utilitarios;

//import java.util.Date;
import java.util.Calendar;

public class data {
    String mes, dia, ano, diaSemana, dataHora;
    
    public void leData()
    {
       //Date data = new Date();
       Calendar c = Calendar.getInstance();
       dataHora = c.getTime();
       ano = c.get(Calendar.YEAR);
       mes = c.get(Calendar.MONTH);
       dia = c.get(Calendar.DAY_OF_MONTH);
       diaSemana = c.get(Calendar.DAY_OF_WEEK);
    }
}

Erros:

utilitarios/data.java:[14,28] incompatible types: java.util.Date cannot be converted to java.lang.String
utilitarios/data.java:[15,19] incompatible types: int cannot be converted to java.lang.String
utilitarios/data.java:[16,19] incompatible types: int cannot be converted to java.lang.String
utilitarios/data.java:[17,19] incompatible types: int cannot be converted to java.lang.String
utilitarios/data.java:[18,25] incompatible types: int cannot be converted to java.lang.String

Como eu disse, estava funcionando e agora resolveu dar erro no código.

Alguém tem alguma idéia do que possa ser?

Muito obrigado.

c.getTime(); // Retorna um objeto do tipo Date e não String
c.get(Calendar.YEAR); // Retorna int e não String
c.get(Calendar.MONTH); // Retorna int e não String
c.get(Calendar.DAY_OF_MONTH); // Retorna int e não String
c.get(Calendar.DAY_OF_WEEK); // Retorna int e não String

Grato à todos.

Coloquei uma “String” vazia e concatenei as variáveis no código. Funcionou!

Segue o código:

public void leData()
    {
       //Date data = new Date();
       Calendar c = Calendar.getInstance();
       dataHora = "" + c.getTime();
       ano = "" + c.get(Calendar.YEAR);
       mes = "" + c.get(Calendar.MONTH);
       dia = "" + c.get(Calendar.DAY_OF_MONTH);
       diaSemana = "" + c.get(Calendar.DAY_OF_WEEK);
    }

Muito obrigado. Resolvido!

of pode usar o string.valueof

1 curtida

As variáveis mes, dia, ano e diaSemana precisam realmente ser do tipo String ?

Poderia ter utilizado apenas .toString, ficaria algo como c.getTime().toString().

Também vale lembrar que quanto se utiliza o Calendar.MONTH o Calendar irá retornar o valor do mês atual -1,ou seja, se estamos em Dezembro (mês 12) o Calendar retornará 11.

1 curtida