Jag har tyvärr inte svaret på din direkta fråga. Men jag kan föreslå något värt att överväga som helt och hållet kommer att undvika alla tidszonproblem i databasen. Om möjligt rekommenderar jag att du helt enkelt använder BIGINT
fält för att lagra datum med Java. Du lagrar bara den long
av antalet millisekunder sedan epoken, t.ex. från System.currentTimeMillis()
eller Date.getTime()
.
Då hanteras alltid tolkningen av tidszonen för ett datum i Java, vilket är bra på att använda det epokbaserade numret. Det gör det lite mer involverat att direkt fråga databasen efter ett datum utanför Java, men det är inte alltför svårt och tenderar att vara värt det IMO:
SELECT FROM_UNIXTIME(date_field / 1000) FROM table;