Mam następującą linię w mojej aplikacji Grails, aby ustawić domyślną strefę czasową UTC:Grails zapisuje datetime jako czas UTC, ale odczytuje go jako czas serwera lokalnego?
TimeZone.setDefault(TimeZone.getTimeZone("UTC"))
Mam Audit
podmiot z pola dateCreated
:
class Audit {
Date dateCreated
String message
}
Potem tworzyć i zapisywać instancję to:
def audit = new Audit(message: "Testing audit message")
To zapisze go do mojej bazy danych poprawnie jako czas UTC. Jednak, gdy próbuję go odczytać:
audit = Audit.get(1)
Znacznik czasu jest odczytywany z powrotem jako czas lokalny. Więc jeśli moja strefa czasowa to +1 UTC, a aktualny czas lokalny to 12:34:56 BST, to co zostanie zapisane w bazie danych to 11:34:56, ale kiedy ją odtworzę, staje się 11 : 34: 56 BST. Czy ktokolwiek wie, jak rozwiązać ten problem, aby Grails odczytał znacznik czasu z powrotem jako UTC i odpowiednio go przekonwertował?
Powinny być ustawione domyślnie TZ OR -Duser.timezone –