Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

402
Visualizações
Spring Data MongoDB - when saving LocaDate/LocalDateTime the value is being set to yesterday

I've got a problem with saving Java8 Date API values to MongoDB database. Whenever a new LocalDate instance (LocalDate.now()) is being saved, as a result we are getting value with yesterdays date with time set to 23:00 PM. Example:

dt.getDate().toString() 

is giving me "2017-03-17"

but when i look into the database i have a value like this:

"dt" : ISODate("2017-03-16T23:00:00.000Z")

My time zone is UTC+01:00

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

MongoDB saves the date in UTC time.

LocalTime is your wall clock time.

When you pass it to MongoDb, spring will convert the LocalTime to Instant(UTC time) by using your System Zone.

Consider

LocalDateTime localDateTime = LocalDateTime.parse("2017-03-17T00:00:00")

Something like this happpens

Instant instant = localDateTime.atZone(ZoneId.systemDefault()).toInstant();

This is where your local time is changed to UTC instant by applying offset (+01:00) from your local time.

Output(in UTC) : 2017-03-16T23:00:00.000Z 
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda