Grails 3 против Grails 4 - даты и метка времени - PullRequest
0 голосов
/ 09 января 2020

Я экспериментирую с обновлением моего приложения Grails 3 до Grails 4. В обоих случаях я использую его с Java 8 и базой данных Oracle. Я вижу различия в том, как обрабатываются даты, и пытался выяснить, что изменилось в отношении дат, но ничего не нашел (в примечаниях к выпуску и т. Д. c) по этому поводу. Есть ли какие-нибудь заметки в блоге / выпуске, на которые кто-то может указать мне по этому поводу? Или объясните разницу ниже?

Два примера

Я использую функцию, подобную этой, чтобы получить дату из Oracle

Date currentDateTime; // NOte this is a java.util.date
{$Sql.TIMESTAMP = call GetcurrentDateTime} {
            returnedDateTime -> currentDateTime =  returnedDateTime;
        }

В Grails 3 returnDateTime будет всегда ведите себя как java .util.Date. Я знаю, что возвращаемым параметром в вызове функции является Sql .TIMESTAMP, но он позволил бы мне присвоить его переменной Date, а затем вести себя как Date. Но в Grails 4 он ведет себя как java. sql .Timestamp, даже если он объявлен как переменная Date.

Другой пример: в моих представлениях у меня будет средство выбора даты, которое может выглядеть следующим образом

<div data-role="controlgroup" data-mini="true" data-type="horizontal" >
    <g:datePicker name="reportingPeriod" precision="month"
    value="${reportingPeriod}"
    default="none" noSelection="['':'']"
    />
</div>

В Grails 3 я могу отобразить значение, выполнив следующее:

log.info("params.reportingPeriod: " + params.reportingPeriod);

Будет показан результат, который выглядит следующим образом params.reportingPeriod: Sun Dec 01 00:00:00 UTC 2019

Я также могу присвоить

params.reportingPeriod 

непосредственно переменной java.util.Date

Но в Grails 4 контроллер вместо этого показывает это

params.reportingPeriod: date.struct

, и он не назначается напрямую переменной Date.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...