Есть ли способ хранить информацию о дате и времени в поле в QGIS?

У меня есть куча входных значений в этом формате:

2014-05-14 17:42:18

И я хотел бы хранить их в поле в QGIS. Я использую Python API для GDAL/OGR. Я заметил, что QGIS поддерживает тип поля «QDate», но кажется, что он может обрабатывать только даты без времени, как таковые:

2014-05-14

Мне просто интересно, есть ли способ обойти это, или я застрял в сохранении метки времени в виде строки?


person wfgeo    schedule 11.01.2016    source источник
comment
Когда вы говорите, что храните дату и время в поле. Это в области чего? Слой? Постгис? форма? ... Не могли бы вы быть более точным. И какая версия Qgis? 1.8 или 2.х   -  person Controlix    schedule 13.01.2016


Ответы (1)


Я предполагаю, что в OGR API Python есть способ определить поле даты и времени и сохранить в нем данные (оно определено в OFRFieldType enum. Вы должны использовать тип OFTDateTime (или OFTDate, или OFTTime), определенный OGR.

Итак, вы можете сделать что-то вроде:

date_field = ogr.FieldDefn("date", ogr.OFTDateTime)
your_layer.CreateField(date_field)

затем вы можете установить значение для функции, передав свою дату в виде строки:

feature = ogr.Feature(your_layer.GetLayerDefn())
feature.SetField("date", "2014-05-14 17:42:18")

Результат может зависеть от вашей структуры выходных данных (если она определяет/поддерживает тип даты и времени) и от настольного программного обеспечения ГИС, которое вы используете для их отображения.

РЕДАКТИРОВАТЬ: Но я пробовал написать такой шейп-файл, а затем открыть его в QGIS; поле date было правильно распознано как поле QDate, и, как вы говорите, время не отображается, поэтому я просмотрел файл .dbf, и часть time не кажется были написаны.

person mgc    schedule 13.01.2016