#36626: Support sub-second resolution in GDAL Features' datetime fields
----------------------------------+---------------------------------------
Reporter: Tilman Koschnick | Type: New feature
Status: new | Component: GIS
Version: dev | Severity: Normal
Keywords: | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
----------------------------------+---------------------------------------
Hi,
I have a GPX DataSource with points that have sub-second resolution:
{{{
<trkpt lat="47.454540000" lon="8.573658000">
<ele>436.900</ele>
<time>2025-09-25T12:24:42.990Z</time>
</trkpt>
}}}
The GDAL API returns these only with second resolution, although the
underlying datetime presentation is still accessible with the as_string()
method:
{{{
>>> point
<django.contrib.gis.gdal.feature.Feature object at 0x7f99254b9190>
>>> point.get('time')
datetime.datetime(2025, 9, 25, 12, 24, 42)
>>> point['time']
<django.contrib.gis.gdal.field.OFTDateTime object at 0x7f99253212b0>
>>> point['time'].as_datetime()
(c_int(2025), c_int(9), c_int(25), c_int(12), c_int(24), c_int(42),
c_int(100))
>>> point['time'].as_string()
'2025/09/25 12:24:42.990+00'
}}}
In my case, I lose information, and end up being at different locations at
the same time ;)
Would it be possible to support sub-second resolutions in the GDAL API? As
I understand it, OGR_F_GetFieldAsDateTime() is used to return the datetime
object:
[
https://gdal.org/en/stable/doxygen/ogr__api_8h.html#a47ca681bb6099eb8c18004d1f7112d95]
GDAL also provides OGR_F_GetFieldAsDateTimeEx() that returns seconds as
float with millisecond accuracy:
[
https://gdal.org/en/stable/doxygen/ogr__api_8h.html#a748995fa28574b25f6b723013a405a8f]
I unfortunately don't understand the GDAL API enough to provide a patch
myself.
Regards, Til
--
Ticket URL: <
https://code.djangoproject.com/ticket/36626>
Django <
https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.