SimpleDateFormatter.parse gera saídas diferentes das especificadas
Ao converter carimbos de data/hora UNIX em datas usando SimpleDateFormat, você pode encontrar discrepâncias entre o formato especificado e o saída.
No exemplo dado, o objetivo é converter um carimbo de data/hora UNIX ("a1527069600") para uma data no formato "dd/MM/yyyy hh:mm:ss a". No entanto, usar SimpleDateFormatter.format seguido por SimpleDateFormatter.parse produz uma saída diferente.
Causa da discrepância
A discrepância ocorre porque SimpleDateFormatter.parse espera uma string no exato formato especificado durante a instanciação ("dd/MM/yyyy hh:mm:ss a"). Nesse caso, SimpleDateFormatter.format gera a data em um formato diferente do formato de entrada esperado, causando falha na operação de análise.
Solução
Para evitar esse problema , é recomendado não passar strings de data para bancos de dados MySQL. Em vez disso, use objetos de data. A moderna API de data e hora Java, java.time, fornece classes como LocalDateTime que facilitam o tratamento de datas.
Exemplo:
String ep = "a1527069600";
long epoch = Long.parseLong(ep.substring(1));
Instant inst = Instant.ofEpochSecond(epoch);
LocalDateTime ldt = inst.atZone(ZoneId.of("Asia/Calcutta")).toLocalDateTime();
System.out.println(ldt.toString()); // Output: 2018-05-23T15:30
PreparedStatement ps = myDatabaseConnection.prepareStatement(
"insert into my_table (my_date_time) values (?)");
ps.setObject(1, ldt);
Este código converte o timestamp UNIX em um LocalDateTime, que pode ser inserido diretamente no banco de dados MySQL.
Conclusão:
Ao utilizar java.time e passar objetos de data em vez de strings para o MySQL, você pode eliminar problemas de formatação e garantir a precisão da conversão de data.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3