У меня есть следующая строка в приложении Grails для установки часовой пояс по умолчанию для UTC:
TimeZone.setDefault(TimeZone.getTimeZone("UTC"))
У меня есть объект Audit
с полем dateCreated
:
class Audit {
Date dateCreated
String message
}
Затем я создаю и сохраняю его экземпляр:
def audit = new Audit(message: "Testing audit message")
Это правильно сохранит его в моей базе данных в качестве времени UTC. Однако, когда я пытаюсь его прочитать:
audit = Audit.get(1)
Временная метка считывается как местное время. Поэтому, если мой часовой пояс равен +1 UTC, а текущее местное время 12:34:56 BST, то что будет сохранено в базе данных 11:34:56, но когда я прочитаю его, он станет 11:34:56 BST. Кто-нибудь знает, как исправить эту проблему, чтобы Grails прочитал метку времени как UTC и соответствующим образом конвертировал ее?