- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
public Date localTimeToUTC(final Date localTime) {
final DateFormat format = DateFormat.getDateTimeInstance();
format.setTimeZone(UTC);
// This is a bit of a trick. Since Java assumes dates are in UTC,
// but localTime is not (blame the weird legacy database...),
// it's a semantically incorrect Date. Therefore we process it as
// if it's in UTC...
final String formatted = format.format(localTime);
format.setTimeZone(localTimeZone);
try {
return format.parse(formatted);
} catch (final ParseException e) {
throw new AssertionError(e); // cannot happen
}
}
И вновь издержки обратной совместимости. Китайские кулибины хранили DateTime в старой базе в локальном часовом поясе.
roman-kashitsyn 26.10.2011 13:37 # +1
разумеется, ведь Китай - Поднебесная, Центр Мира
lucidfox 26.10.2011 13:38 # −1
bugmenot 26.10.2011 13:56 # +1
lucidfox 26.10.2011 14:03 # −1
bugmenot 26.10.2011 16:47 # +1
Это зависит. Oracle справилось бы, например. А то можно представление с вычисляемой колонкой создать и пусть старый говнокод наслаждается локальным временем
lucidfox 27.10.2011 04:59 # −1
guest8 09.04.2019 11:49 # −999