有没有办法在 QGIS 的字段中存储日期和时间信息?

Is there a way to store date and time info in a field in QGIS?

我有一堆这种格式的输入值:

2014-05-14 17:42:18

我想将它们存储在 QGIS 的一个字段中。我正在为 GDAL/OGR 使用 Python API。我注意到 QGIS 支持字段类型 "QDate",但它似乎只能处理没有时间的日期,因此:

2014-05-14

我只是想知道是否有办法解决这个问题,或者我是否坚持将时间戳存储为字符串?

我想 python OGR API 有一种方法可以定义日期时间字段并在其中存储数据(它在 OFRFieldType enum 中定义)。你必须使用 OFTDateTime(或OFTDateOFTTime)由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")

结果可能取决于您的输出数据结构(如果它 defines/supports 日期时间类型)以及您用来显示它们的桌面 GIS 软件。

编辑:但是我测试写了一个像这样的shapefile,然后在QGIS中打开它; date 字段被正确识别为 QDate 字段,正如您所说时间未显示,所以我查看了 .dbf 文件和 time部分好像没写