Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro na hora de inserir a data

Meu codigo

    <div class="container">
            <section class="summary">
                <h3>E muito mais... <a href='/pages/sumario-java8'>veja o sumário</a></h3>
             </section>

            <section class="data product-detail">
                <h2 class="section-title">Dados do livro:</h2>
                <p>Número de páginas: <span>${produto.paginas }</span></p>
                <p></p>
                <p>Data de publicação: ${produto.dataLancamento }</p>
                <p>Encontrou um erro? <a href='/submissao-errata' target='_blank'>Submetauma errata</a></p>
            </section>
        </div>

Erro que aparece no navegador no local em qual a data deveria aparecer:

ava.util.GregorianCalendar[time=1521575072000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="America/Sao_Paulo",offset=-10800000,dstSavings=3600000,useDaylight=true,transitions=129,lastRule=java.util.SimpleTimeZone[id=America/Sao_Paulo,offset=-10800000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=9,startDay=15,startDayOfWeek=1,startTime=0,startTimeMode=0,endMode=3,endMonth=1,endDay=15,endDayOfWeek=1,endTime=0,endTimeMode=0]],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2018,MONTH=2,WEEK_OF_YEAR=12,WEEK_OF_MONTH=4,DAY_OF_MONTH=20,DAY_OF_YEAR=79,DAY_OF_WEEK=3,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=4,HOUR_OF_DAY=16,MINUTE=44,SECOND=32,MILLISECOND=0,ZONE_OFFSET=-10800000,DST_OFFSET=0]
1 resposta
solução!

Oi Johnathan,

Na verdade não é um erro. Como o seu atributo dataLancamento da classe Produto é do tipo Calendar, quando você imprime no browser ela sai desse jeito mesmo.

Imprimir um objeto do tipo Calendar não é muito legal, pois sai nessa formatação meio bizarra.

Para imprimir bonitinho, você precisa utilizar a taglib fmt, da seguinte maneira:

<p>Data de publicação: <fmt:formatDate value="${produto.dataLancamento}" pattern="dd/MM/yyyy"/></p>

A tag formatDate serve para formatar uma data, de acordo com o pattern que você passar.

Mas na verdade não vai funcionar, porque essa tag somente serve para formatar objetos do tipo Date e não Calendar =/

Mas não tem problemas, pois dentro da classe Calendar existe um atributo chamado time que representa a data com o tipo Date. Então é só alterar o código para acessar esse atributo:

<fmt:formatDate value="${produto.dataLancamento.time}" pattern="dd/MM/yyyy"/>

Agora sim vai funcionar :)

Obs: lembre-se de importar a taglib em sua página:

<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>

Bons estudos!