我有这种格式的一堆输入值:
2014-05-14 17:42:18
我想将它们存储在QGIS的一个字段中。我正在使用Python API for GDAL / OGR。我注意到QGIS支持字段类型“QDate”,但它似乎只能处理没有时间的日期,因此:
2014年5月14日
我只是想知道是否有办法解决这个问题,还是我将时间戳存储为字符串?
答案 0 :(得分:3)
我想python OGR API有一种定义日期时间字段并在其中存储数据的方法(在OFRFieldType
enum中定义。)你必须使用OFTDateTime
(或OFTDate
或者由OGR定义的OFTTime
)类型。
所以你可以这样做:
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")
结果可能取决于您的输出数据结构(如果它定义/支持日期时间类型)以及您用来显示它们的桌面GIS软件。
编辑:但是我测试了这样的shapefile,然后在QGIS中打开它; date 字段已被正确识别为QDate
字段,正如您所说,时间未显示所以我查看了.dbf
文件和时间 part似乎没有被写出来。