Datumvelden en datum/tijdvelden in een formulier

Dit onderdeel geeft een toelichting op de formuliervelden die als waarde een datum hebben of een datum en een tijd. Hierbij worden voor een veld onderscheid gemaakt in het datatype in de database en het elementtype in het formulier. Het elementtype bepaalt de weergave en gedrag van het veld in het formulier.

Zorg bij het configureren van een datumveld van een formulier dat het elementtype van het formulierveld overeenkomt met het datatype van het databaseveld. 


De volgende tabel geeft aan hoe de waarde van het datumveld wordt opgeslagen bij verschillende waarden voor het datatype van het databaseveld en het elementtype van het formulierveld:

Elementtype in formulier van WGP

Datatype van databaseveld

Ingevoerde waarde
(weergave in formulier)

Opgeslagen waarde
(weergave in feature-info)

Datumkiezer

Datum

18-09-2017

2017-09-18

Datum & tijd

Datum

18-09-2017, 05:55:00

2017-09-18

Datumkiezer

Datum & tijd*

18-09-2017

2017-09-18T00:00:00

Datum & tijd

Datum & tijd*

18-09-2017, 05:55:00

2017-09-18T05:55:00

* Let op: Zowel datatype 'Datum' als datatype 'Datum & tijd' worden in WGP aangeduid met veldtype 'Date'.

Bij de formulierinstellingen van WGP (venster Veld bewerken) worden zowel databaseveld 'Date' als databaseveld 'Date & time' aangeduid met het veldtype 'Date'. Om deze twee te kunnen onderscheiden heb je kennis van het desbetreffende databaseveld nodig en bij het configureren van een formulier moet hiermee rekening gehouden worden. Nieuwland raadt sterk aan om na de configuratie van een formulier zelf te testen of het opslaan van een datum (met of zonder tijd) verloopt zoals je dat wilt.

Je kunt vanuit een formulier altijd de waarde van een datumveld in een databaseveld met datum en tijd opslaan. Als in de database echter een tijdsaanduiding zonder tijdzone wordt gebruikt, converteert de kaartserver (GeoServer) de ingevoerde tijd automatisch naar Greenwich Mean Time (tijdzone UTC + 0), doorgaans 1 uur vroeger dan de tijd bij ons (tijdzone UTC + 1). Als een formulierveld met alléén een datum wordt opgeslagen, haalt GeoServer de tijdzone eraf. Dit heeft geen invloed op de weergave van de datum in de feature-info, omdat de feature-info geen tijdzones gebruikt. Het heeft echter wel invloed op de datum die het formulier weergeeft dat je gebruikt om vectorlagen (WFST-lagen) te bewerken. Als het databaseveld van type 'Date' is, dan heeft dat de volgende consequenties voor het formulier:

  • Als het elementtype van het formulier 'Datum' is, dan wordt in het formulier de datum een dag te vroeg getoond (een uur eerder dan 00:00).
  • Als het elementtype van het formulier 'Datum & Tijd' is, dan wordt in het formulier de datum helemaal niet getoond.

Als het veld in de database een 'Date & time' is (met of zonder tijdzone), wordt zowel datum als tijd wel goed in het formulier weergegeven voor elementtypes 'Datum' en 'Datum & Tijd'.

Nieuwland gebruikt altijd datum & tijd met tijdzone. Kaartserver GeoServer geeft altijd de UTC-tijd terug; de offset van de tijdszone wordt genegeerd.

De volgende tabellen geven een compleet overzicht van de datumvelden van de database en de output van GeoServer voor elementtypen 'Datum & Tijd' en 'Datumkiezer' (WGP-formulier), waarbij de waarde die vanuit WGP via het WFST-protocol naar de kaartserver wordt verstuurd in beide gevallen '2017-10-20T12:35:00+02:00' is:

Elementtype 'Datum & Tijd
Database veldtype  Waarde in database (als tekst)GLM-output van GeoServer
date2017-10-202017-10-20
timestamp without timezone2017-10-20 12:35:002017-10-20T12:35:00
timestamp with timezone2017-10-20 12:35:00+022017-10-20T12:35:00 (zonder tijdzone!)


Elementtype 'Datumkiezer

Database veldtype  Waarde in database (als tekst)GLM-output van GeoServer
date2017-10-202017-10-20
timestamp without timezone2017-10-20 00:00:002017-10-20T00:00:00
timestamp with timezone2017-10-20 00:00:00+022017-10-20T00:00:00 (zonder tijdzone!)