ho la seguente riga nella mia applicazione Grails per impostare il fuso orario predefinito per UTC:Grails salva data/ora come ora UTC, ma la legge come ora locale del server?
TimeZone.setDefault(TimeZone.getTimeZone("UTC"))
Ho un Audit
un'entità con un campo dateCreated
:
class Audit {
Date dateCreated
String message
}
Poi creano e salvano un'istanza di esso:
def audit = new Audit(message: "Testing audit message")
Ciò lo salverà correttamente nel mio database come ora UTC. Tuttavia, quando provo a leggerlo di nuovo:
audit = Audit.get(1)
Il timestamp viene nuovamente letto come ora locale. Quindi se il mio fuso orario è +1 UTC e l'ora locale corrente è 12:34:56 BST, ciò che verrà salvato nel database è 11:34:56, ma quando lo rileggo, diventa 11 : 34: 56 BST. Qualcuno sa come risolvere questo problema in modo che Grails rileggi il timestamp come UTC e lo converta di conseguenza?
Questo dovrebbe essere impostato come predefinito TZ OR -Duser.timezone –