GWT не преобразовывает в последовательную форму Явскую Дату правильно. Когда я пытался послать Дату, созданную в JavaScript через провод, я узнал, что даты между 1-го апреля (забавным) и 25-го октября в течение многих лет до 1983 года вычтены на один день.
Это означает, что, скажем, и 1982-04-01 и 1982-03-31 становятся 1982-03-31 на Явской стороне.
Учитывая рассматриваемые даты, я предположил бы, что это - некоторая проблема DST. Я попробовал поиск с помощью Google и нашел только еще одну ссылку, которая описывает подобную проблему.
Я также попытался представить ошибку команде GWT, но любопытно не смог найти bugtracker для GWT.
Так, мои вопросы:
Кто-либо еще сталкивается с этим? Я нахожусь на GWT 1.7 и хотел бы подтвердить, происходит ли это на 2,0 также.
Моя работа должна была послать даты как Последовательности и разобрать их на сервере. Кто-либо знает лучшую работу?
Предполагая, что вы Используют java.util.date
Вопрос 1: кажется, что он зафиксирован в 2.0. Я создал как даты выше (1982-04-01 и 1982-03-31), и они правильно проходят через сервер (оба представляют на сервере 1982-04-01 и 1982-03-31 соответственно). Моя настройка:
Вопрос 2: Вы всегда можете пройти «миллисекунды с 1 января 1970 года, 00:00:00 GMT» через Async Сервис - который вы можете получить с помощью GetTime () на объекте даты. На стороне сервера вы можете затем создать новую дату, передавающую это значение в конструкторе:
Дата даты = Новая дата (Millis);
Это экономит возобновить с форматтерами и парсерами.
Даты и времена являются сложным предметом. Преобразование может зависеть от локали, который браузер работает внутрь и WETHER WHVM на сервере, а локали клиентов актуальны.
В некоторых случаях могут быть различия, потому что в некоторых регионах они переключили часовые появления в прошлом.
GWT отправляет даты, используя просто millis, так как время эпохи. Поскольку он использует объекты даты, вы ограничены тем, что даты на стороне сервера будут автоматически модифицированы на серверы часовой пояс. Вы уверены, что вы учитываете возможную разницу в часовых поясах между клиентом и сервером?
David
Если вам не нужно делать конверсии на стороне клиента (адаптироваться к часовой зоне пользователя) или вычисления, отправьте его в строку с сервера.
Никогда не сталкивался с вашей конкретной проблемой, хотя.
Мы также столкнулись с подобной проблемой. Достаточно давно я не помню точных деталей, но суть в том, что были небольшие различия между java.util.Date и способом работы с датами в Javascript. Наш обходной путь был фактически таким же, как и ваш, где фактическое значение, посылаемое по проводу, было, как правило, Строкой.