Eu quero converter java.time.LocalDate
em java.util.Date
tipo. Porque eu quero definir a data JDateChooser
. Ou existe algum seletor de data que suporte java.time
datas?
372
Eu quero converter java.time.LocalDate
em java.util.Date
tipo. Porque eu quero definir a data JDateChooser
. Ou existe algum seletor de data que suporte java.time
datas?
Respostas:
Isso pressupõe que o seletor de datas use o fuso horário padrão do sistema para transformar datas em strings.
fonte
atStartOfDay()
, pois altera o valor da data, como eu a entendo.Aqui está uma classe de utilitário que eu uso para converter as
java.time
classes mais recentes emjava.util.Date
objetos e vice-versa:Editado com base no comentário do @Oliv.
fonte
ZoneId.systemDefault()
problemas porque os fusos horários mudam ao longo do ano. Portanto, se em 01 de janeiro estou no fuso horário -05: 00 (central), mas em 01-julho estou no fuso -06: 00 (horário de verão central) não causará resultados imprecisos devido ao horário de verão Tempo?Você pode usar o
java.sql.Date.valueOf()
método como:Não há necessidade de adicionar informações de hora e fuso horário aqui, pois elas são obtidas implicitamente.
Consulte LocalDate para java.util.Date e vice-versa da conversão mais simples?
fonte
java.sql.Date
destina-se à camada de banco de dados, JDBC, JPA. A camada da web (ou qualquer aplicativo cliente) deve estar absolutamente livre de qualquer dependênciajava.sql.*
.java.sql.Date
é apenasjava.util.Date
com o tempo definido,00:00:00
mas o ponto na perspectiva do design é quejava.sql.*
não se destina a uma camada frontal com a qual os clientes interagem, como Servlets / JSP.java.util.Date
no lado Java ejava.sql.Timestamp
ou o que for aplicáveljava.sql.*
no lado JDBC .java.sql.*
classes serão uma dependência separada.java.time possui a interface Temporal, que você pode usar para criar objetos Instantâneos na maioria das classes de tempo. Instantâneo representa milissegundos na linha do tempo na época - a referência básica para todas as outras datas e horas.
Precisamos converter a data em um ZonedDateTime, com uma hora e um fuso, para fazer a conversão:
fonte
Para criar um java.util.Date a partir de um java.time.LocalDate , você deve
O código pode ter a seguinte aparência:
fonte
toEpochSecond
é herdado dejava.time.chrono.ChronoZonedDateTime
. Veja docs.oracle.com/javase/8/docs/api/java/time/chrono/…Isso funciona para mim:
https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html#toString--
fonte
Solução Kotlin:
1) Cole esta função de extensão em algum lugar.
2) Use-o e nunca faça o google novamente.
fonte
fonte
Simples
fonte
fonte