|
|
|
Конвертировка в UTC и обратно
|
|||
|---|---|---|---|
|
#18+
Добрый день! "Сами мы не местные". Необходимо учитывать при обмене с сервером пользовательские настройки временной зоны при чтении/записи java.util.Date с/на сервер. Сервер хранит UTC, пользователь оперирует временем своей временной зоны. Чтобы обеспечить обмен набросал код прямого и обратного конвертирования: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. Видите ли вы потенциальные проблемы в этом коде или подобная наивная реализация должна выдержать переходы на летнее зимнее время и прочее-прочее? Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 17:57 |
|
||
|
Конвертировка в UTC и обратно
|
|||
|---|---|---|---|
|
#18+
Не проще ли передавать Calendar в этом случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 17:58 |
|
||
|
Конвертировка в UTC и обратно
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Библиотека доступа к данным заточена на java.util.Date, к сожалению. Переписывать ее пока не входит в мои планы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 18:01 |
|
||
|
Конвертировка в UTC и обратно
|
|||
|---|---|---|---|
|
#18+
Стремно как-то оперировать Date в то время как часовой пояс имеет значение. Как минимум тогда стоит таскать TimeZone везде с собой. Иначе как определить из какого пояса Date, если вдруг он где-то просочиться необработанным? Если в проекте уже используется Commons Langs, то можно взять методы изменения Date оттуда, а не писать самому. Ну, и если включить code review зануду, то методы очевидный копипаст, отличающиеся одним символом. Я за такое всегда мысленно себя ругаю и тут же рефакторю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 18:29 |
|
||
|
Конвертировка в UTC и обратно
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Спасибо большое за ответ! Риски я понимаю, но пока должен остаться в поле java.utils.Date. А там глядишь и новое Date and Time API в JDK 8 подоспеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 13:02 |
|
||
|
Конвертировка в UTC и обратно
|
|||
|---|---|---|---|
|
#18+
Анатолий ШироковСпасибо большое за ответ! Риски я понимаю, но пока должен остаться в поле java.utils.Date. А там глядишь и новое Date and Time API в JDK 8 подоспеет. Дык они там Jode Time всосали в JSE. Причем не весь, а выборочно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 13:03 |
|
||
|
Конвертировка в UTC и обратно
|
|||
|---|---|---|---|
|
#18+
На самом деле вопрос некорректный. Зачем преобразовывать время? Оно едино для всех, и хранится как количество миллисекунд, прошедших с определенного момента (единого для всех). У вас есть время, а каково его значение на клиенте - это вопрос представления, который решается с помощью календаря. Вы сейчас решаете задачу представления изменяя модель, и это неправильно. Методы toUTC и fromUTC должны преобразовывать Date<->Calendar, Date<->String ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 13:26 |
|
||
|
Конвертировка в UTC и обратно
|
|||
|---|---|---|---|
|
#18+
ivanra, Вы правы, но модель я как раз не трогаю. Исходный вопрос возник в силу того, что представление у меня date ориентированное и единственный способ ему "сказать" в каком часовом поясе он находится это искусственно сместить дату на величину смещения относительно UTC в процессе "отрисовки". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 15:24 |
|
||
|
|

start [/forum/topic.php?fid=59&gotonew=1&tid=2127644]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
153ms |
get topic data: |
7ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 464ms |

| 0 / 0 |
