Skip to content

Commit 72a9ef5

Browse files
committedMay 14, 2020
Fix AFS datetime value handling
1 parent e82aa17 commit 72a9ef5

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed
 

‎src/providers/arcgisrest/qgsarcgisrestutils.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ QVariant::Type QgsArcGisRestUtils::mapEsriFieldType( const QString &esriFieldTyp
5454
if ( esriFieldType == QLatin1String( "esriFieldTypeString" ) )
5555
return QVariant::String;
5656
if ( esriFieldType == QLatin1String( "esriFieldTypeDate" ) )
57-
return QVariant::Date;
57+
return QVariant::DateTime;
5858
if ( esriFieldType == QLatin1String( "esriFieldTypeGeometry" ) )
5959
return QVariant::Invalid; // Geometry column should not appear as field
6060
if ( esriFieldType == QLatin1String( "esriFieldTypeOID" ) )
@@ -1070,7 +1070,7 @@ QDateTime QgsArcGisRestUtils::parseDateTime( const QVariant &value )
10701070
if ( value.isNull() )
10711071
return QDateTime();
10721072
bool ok = false;
1073-
QDateTime dt = QDateTime::fromMSecsSinceEpoch( value.toLongLong( &ok ), Qt::UTC );
1073+
QDateTime dt = QDateTime::fromMSecsSinceEpoch( value.toLongLong( &ok ) );
10741074
if ( !ok )
10751075
{
10761076
QgsDebugMsg( QStringLiteral( "Invalid value %1 for datetime" ).arg( value.toString() ) );

‎tests/src/python/test_provider_afs.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,9 @@ def setUpClass(cls):
244244
{"name":"name","type":"esriFieldTypeString","alias":"name","length":100,"domain":null},
245245
{"name":"name2","type":"esriFieldTypeString","alias":"name2","length":100,"domain":null},
246246
{"name":"num_char","type":"esriFieldTypeString","alias":"num_char","length":100,"domain":null},
247+
{"name":"dt","type":"esriFieldTypeDate","alias":"num_char","length":100,"domain":null},
248+
{"name":"date","type":"esriFieldTypeDate","alias":"num_char","length":100,"domain":null},
249+
{"name":"time","type":"esriFieldTypeDate","alias":"num_char","length":100,"domain":null},
247250
{"name":"Shape","type":"esriFieldTypeGeometry","alias":"Shape","domain":null}],
248251
"features": [
249252
{
@@ -336,6 +339,9 @@ def setUpClass(cls):
336339
{"name":"name","type":"esriFieldTypeString","alias":"name","length":100,"domain":null},
337340
{"name":"name2","type":"esriFieldTypeString","alias":"name2","length":100,"domain":null},
338341
{"name":"num_char","type":"esriFieldTypeString","alias":"num_char","length":100,"domain":null},
342+
{"name":"dt","type":"esriFieldTypeDate","alias":"num_char","length":100,"domain":null},
343+
{"name":"date","type":"esriFieldTypeDate","alias":"num_char","length":100,"domain":null},
344+
{"name":"time","type":"esriFieldTypeDate","alias":"num_char","length":100,"domain":null},
339345
{"name":"Shape","type":"esriFieldTypeGeometry","alias":"Shape","domain":null}],
340346
"features": [
341347
{
@@ -607,7 +613,7 @@ def testDateTime(self):
607613

608614
features = [f for f in vl.getFeatures()]
609615
self.assertEqual(len(features), 2)
610-
self.assertEqual([f['dt'] for f in features], [QDate(2017, 5, 3), NULL])
616+
self.assertEqual([f['dt'] for f in features], [QDateTime(2017, 5, 3, 0, 0, 0, 0, Qt.UTC).toLocalTime(), NULL])
611617

612618
def testMetadata(self):
613619
""" Test that metadata is correctly acquired from provider """

0 commit comments

Comments
 (0)
Please sign in to comment.