[Spring-Java] Data inserita mostra 2 ore in anticipo.

di dev-vico il
6 risposte

Buongiorno programmatori, salvo la data nel DB con OffsetDateTime.now(), ma questa pur comparendo in un messaggio eseguito prima del salvataggio esattamente corrispondente a quella dell' ora del pc, una volta salvata con il repository(Uso Hibernate, mappo le entity) si rileva in anticipo di 2 ore.

In mysql eseguo:

mysql> SELECT NOW(), CURRENT_TIMESTAMP;
+---------------------+---------------------+
| NOW()               | CURRENT_TIMESTAMP   |
+---------------------+---------------------+
| 2025-08-26 13:49:57 | 2025-08-26 13:49:57 |
+---------------------+---------------------+
1 row in set (0.00 sec)

E l'ora è corrispondente a quella di sistema.

Nella entity:
 @Column
private OffsetDateTime createdAt;

 @Column
private OffsetDateTime expiresAt;

Aggiungo che l'orario è proprio salvato due ore prima perché facendo query sul db quando leggo vedo così.
  
Avete idea del perché di questa "stranezza"?

6 Risposte

  • E se sposti l'ora di sistema al 20/02/2025 di quante ore anticipa? 1? 

  • Dovrei provare, in teoria dovrebbe essere dovuto alla differenza tra ora IT e UTC.
    Ma non capisco perché per Londra l'ora è spostata di 1 ora rispetto qui. 

  • 27/08/2025 - dev-vico ha scritto:

    Dovrei provare, in teoria dovrebbe essere dovuto alla differenza tra ora IT e UTC.
    Ma non capisco perché per Londra l'ora è spostata di 1 ora rispetto qui. 

    Probabilmente perché al momento abbiamo l'ora legale.

  • 27/08/2025 - sihsandrea ha scritto:

    27/08/2025 - dev-vico ha scritto:

    Dovrei provare, in teoria dovrebbe essere dovuto alla differenza tra ora IT e UTC.
    Ma non capisco perché per Londra l'ora è spostata di 1 ora rispetto qui. 

    Probabilmente perché al momento abbiamo l'ora legale.

    Ho pensato lo stesso. 

    Potrei lasciare la data indietro nel DB e quando la estraggo la aggiorno all' ora locale.

    Non dovrebbe essere un problema per la sicurezza spero.

    Buona serata 

  • 30/08/2025 - dev-vico ha scritto:

    Potrei lasciare la data indietro nel DB e quando la estraggo la aggiorno all' ora locale.

    Oppure cercare le opzioni per la timezone...

    OffsetDateTime.now(ZoneOffset.UTC)

Devi accedere o registrarti per scrivere nel forum
6 risposte