GWT java.util. Ошибка преобразования в последовательную форму даты

GWT не преобразовывает в последовательную форму Явскую Дату правильно. Когда я пытался послать Дату, созданную в JavaScript через провод, я узнал, что даты между 1-го апреля (забавным) и 25-го октября в течение многих лет до 1983 года вычтены на один день.

Это означает, что, скажем, и 1982-04-01 и 1982-03-31 становятся 1982-03-31 на Явской стороне.

Учитывая рассматриваемые даты, я предположил бы, что это - некоторая проблема DST. Я попробовал поиск с помощью Google и нашел только еще одну ссылку, которая описывает подобную проблему.

Я также попытался представить ошибку команде GWT, но любопытно не смог найти bugtracker для GWT.

Так, мои вопросы:

  1. Кто-либо еще сталкивается с этим? Я нахожусь на GWT 1.7 и хотел бы подтвердить, происходит ли это на 2,0 также.

  2. Моя работа должна была послать даты как Последовательности и разобрать их на сервере. Кто-либо знает лучшую работу?

9
задан Domchi 20 January 2010 в 14:40
поделиться

4 ответа

Предполагая, что вы Используют java.util.date

Вопрос 1: кажется, что он зафиксирован в 2.0. Я создал как даты выше (1982-04-01 и 1982-03-31), и они правильно проходят через сервер (оба представляют на сервере 1982-04-01 и 1982-03-31 соответственно). Моя настройка:

  • GWT 2.0
  • Java 1.6
  • osx 10.6.2

Вопрос 2: Вы всегда можете пройти «миллисекунды с 1 января 1970 года, 00:00:00 GMT» через Async Сервис - который вы можете получить с помощью GetTime () на объекте даты. На стороне сервера вы можете затем создать новую дату, передавающую это значение в конструкторе:
Дата даты = Новая дата (Millis);
Это экономит возобновить с форматтерами и парсерами.

5
ответ дан 4 December 2019 в 20:24
поделиться

Даты и времена являются сложным предметом. Преобразование может зависеть от локали, который браузер работает внутрь и WETHER WHVM на сервере, а локали клиентов актуальны.

В некоторых случаях могут быть различия, потому что в некоторых регионах они переключили часовые появления в прошлом.

GWT отправляет даты, используя просто millis, так как время эпохи. Поскольку он использует объекты даты, вы ограничены тем, что даты на стороне сервера будут автоматически модифицированы на серверы часовой пояс. Вы уверены, что вы учитываете возможную разницу в часовых поясах между клиентом и сервером?

David

2
ответ дан 4 December 2019 в 20:24
поделиться

Если вам не нужно делать конверсии на стороне клиента (адаптироваться к часовой зоне пользователя) или вычисления, отправьте его в строку с сервера.

Никогда не сталкивался с вашей конкретной проблемой, хотя.

1
ответ дан 4 December 2019 в 20:24
поделиться

Мы также столкнулись с подобной проблемой. Достаточно давно я не помню точных деталей, но суть в том, что были небольшие различия между java.util.Date и способом работы с датами в Javascript. Наш обходной путь был фактически таким же, как и ваш, где фактическое значение, посылаемое по проводу, было, как правило, Строкой.

0
ответ дан 4 December 2019 в 20:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: