3
respostas

meu calendar está vindo do ano 2020

Opa, boa tarde, tenho uma duvida que sempre me encomodo, estou usando o java jsf com primefaces, e quando eu instancio um calendar com o getInstance para trazer a hora e data atual ele me retorna no ano de 2020, só que o dia e o mes vem certo! E no meu notbook a hora está certo e com o ano correto também. Sempre uso assim.

@Temporal(TemporalType.DATE)
    private Calendar Data = Calendar.getInstance();

e no meu html.

<p:outputLabel value="Vencimento: " for="dataVencimento" />
                    <p:calendar id="dataVencimento"
                        value="#{compraBean.parcela.dataVencimento.time}">
                        <f:convertDateTime pattern="dd/MM/yyyy"
                            timeZone="America/Sao_Paulo" />
                    </p:calendar>

é de outra classe que estou usando então não reparem no erro da variavel criada com a variavel do html, só quero mostrar com que faço e oque está me ocorrendo.

3 respostas

Não seria assim:

<p:calendar id="dataVencimento" 
 value="#{compraBean.parcela.dataVencimento}">
pattern="dd/MM/yyyy"
locale="pt_BR"
/>
</p:calendar>

Poderia mostrar sua classe Parcela? Tirei o time da dataVencimento.

Minha classe parcela.

Entity
@SuppressWarnings("serial")
public class Parcela implements Serializable{

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long codigo;
    @Temporal(TemporalType.DATE)
    private Calendar dataPagamento = Calendar.getInstance();
    @Temporal(TemporalType.DATE)
    private Calendar dataVencimento = Calendar.getInstance();
    private Double valorParcela = 0.0D;
    @OneToOne
    @JoinColumn(name = "quantidadeParcela_codigo")
    private QuantidadeParcela quantidadeParcela = new QuantidadeParcela();

    public Long getCodigo() {
        return codigo;
    }
    public void setCodigo(Long codigo) {
        this.codigo = codigo;
    }
    public Calendar getDataPagamento() {
        return dataPagamento;
    }
    public void setDataPagamento(Calendar dataPagamento) {
        this.dataPagamento = dataPagamento;
    }
    public Calendar getDataVencimento() {
        return dataVencimento;
    }
    public void setDataVencimento(Calendar dataVencimento) {
        this.dataVencimento = dataVencimento;
    }
    public Double getValorParcela() {
        return valorParcela;
    }
    public void setValorParcela(Double valorParcela) {
        this.valorParcela = valorParcela;
    }
    public QuantidadeParcela getQuantidadeParcela() {
        return quantidadeParcela;
    }
    public void setQuantidadeParcela(QuantidadeParcela quantidadeParcela) {
        this.quantidadeParcela = quantidadeParcela;
    }


}

Coloquei do jeito que você me passo o "erro" ainda persiste :(

Tire o time da dataVencimento.

<p:calendar id="dataVencimento" 
 value="#{compraBean.parcela.dataVencimento}">
pattern="dd/MM/yyyy"
locale="pt_BR"
/>
</p:calendar>