![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
zenit |
|
||||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 2.10.2006 Репутация: нет Всего: нет |
Дорогие друзья, СОС!
Хоть и пытался вработаться в тематику работы с датами, не могу врубиться, как и куда сажать часовое смесщение летнего времени. Код заключается в том, чтобы считать с клиента отдельные фрагменты даты: время, дата, временная зона(TimeZone). Из этих компонентов "леплю" обьект и помещаю его в базу данных.
Из базы данных считывается объект след.образом:
НО! У меня постоянно после того, как я считываю объект из базы данных смещение на 1 час! Дело, как мне кажется именно в getDSTSavings(). но вопрос, куда эго прибавлять/вычитать. Я всего лишь хочу записать и считать один и тот же обьект! Дело в том, что в последствии данхые отправляются обратно на клиент и там они должны быть в соответствии с начальными параметрами(время, дата, зона) снова "расчленены"...Следовательно я передаю ещё и клиенту информацию через getOffset(). Плиииз, подскажите, куда мне девать этот одсет изначально! |
||||
|
|||||
dobrolub |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: 11 Всего: 16 |
А почему ты не используешь GregorianCalendar (Коляды Дар
![]() Тут нужно по крайней мере делать всё симметрично, и Calendar самый лучший способ для этого. И уж если у тебя date не всегда utcDate, то не надо её именовать utcDate. |
|||
|
||||
zenit |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 2.10.2006 Репутация: нет Всего: нет |
что касается имени, здесь ДА - нужно исправить...но разве симметричность календаря мне поможет? тем более, что форматор возвратит мне Дату, а не календарь.
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
1. Внутри Date время всегда хранится в UTC. TimeZone появляется у Calendar, когда нам нужно получить компоненты даты. И изыски типа:
смысла не имеют. 2. Из п. 1 следует, что надо сделать все, чтобы изначально правильно парсить время. Раз уж временная зона у вас не фиксированна, то в СУБД дата должна хранится либо в UTC (тогда мы теряем изначальную временную зону), либо хранится в поле поддерживающем временную зону. Клиенту лучше всего передавать: время в Date/long и TimeZone. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
zenit |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 2.10.2006 Репутация: нет Всего: нет |
Можно тогда Вас попросить предложить вариант ПРАВИЛьНОГО парзинга, чтобы быть уверенным, что в ДБ записана дата в UTC. Дело в том, что стринги от клиента я получаю отдельно: Дата, Время, AM/PM. И вот время, которое я получаю - это соотвественно время в одной из временных зон, которую выбрал для себя пользователь(18:00 Europe/Berlin, например...). От клиента я получаю легитимное ID для временной зоны, поэтому могу найти искомый объект: Timezone.getTimezone(ID). Вот только вопрос, как же мне сказать при использовании форматтера(ведъ именно с его помощью я превращу String в Date), чтобы он использовал правильный Offset для времени. Ведь если сказать formatter.setTimezone(UTC), то это будет неверно, ведь дата которую я получил, соответсвует времени не в UTC, а в указанной временной зоне. То есть нужен будет Цалендар, чтобы получать значиения отдельных временных параметров(год, месяц, час...)???
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |