Formatieren von Daten in QGIS-Labels

9

Ich möchte ein Datumsfeld als Beschriftung anzeigen. Die Daten stammen aus einem Shapefile. Das betreffende Feld ist ein Datumsfeld.

Wenn ich das Datumsfeld für die Beschriftung verwende, wird es im Format JJJJ / MM / TT angezeigt. Ich möchte es auf das Format TT / MM / JJJJ bringen.

Ist das möglich. Ich weiß, dass ich in MapInfo die FormatDate-Funktion verwenden würde. Ich habe mich gefragt, ob es in QGIS etwas Ähnliches gibt.

James S.
quelle

Antworten:

7

Update: Ausdrücke unterstützen jetzt beispielsweise die Datumsformatierung

format_date('2012-05-15','dd.MM.yyyy') → '15.05.2012'

Derzeit wird an der "ausdrucksbasierten Kennzeichnung" gearbeitet: http://hub.qgis.org/issues/3488 .

Im Moment können Sie den Feldrechner verwenden, um Ihre Datums- / Uhrzeitzeichenfolge in ein anderes Format zu konvertieren, z. B. JJJJ / MM / TT in TT.MM.JJJJ wie folgt:

substr(date,8,2)||'.'||substr(date,5,2)||'.'||substr(date,0,4)

Die Teilstringsyntax lautet:

substr(string,startpos,length)
Unterdunkel
quelle
3

Wenn Sie die Datei shape.dbf in Ihrem bevorzugten Tabellenkalkulationseditor öffnen können:

  • Erstellen Sie eine neue Spalte, nennen Sie sie temp_date.
  • Kopieren Sie die alten Datumsdaten und fügen Sie sie in temp_date ein
  • Teilen Sie diese Spalte mithilfe der text to dataFunktion nach Zeichen \oder je nachdem, was Ihr Datumsteiler ist
  • Ordnen Sie die Spalten in der gewünschten Reihenfolge neu an
  • Erstellen Sie eine neue Spalte new_date
  • Verwenden Sie in new_date die folgende Formel =A1 & "/" & B1 & "/" & C1. Natürlich müssen Sie die richtigen Felder verwenden und nicht die, die ich erwähnt habe.

Natürlich könnte es eine Standardmethode für QGis geben, Datumsformate zu verarbeiten, aber ich habe es nicht gesehen. Vielleicht spielen Sie mit dem Feldrechner herum, wenn das überhaupt hilft

Ich bin mir sicher, dass es eine Option gibt, dies über die qgis-Python-Konsole zu tun. Ich vermute nicht, dass dies eine große Sache sein wird, entweder mit den Zeit- / Uhrzeit-Datumsmodulen oder nur mit einem generischen str.replace- oder reg-Ausdruck. Ich bin kein Vers mit der API, also kann ich dort nicht helfen

dassouki
quelle
1
Es ist keine gute Idee, dbf außerhalb eines GIS-Programms zu bearbeiten, da das ObjectID-Feld nicht in Excel übertragen wird. forums.esri.com/Thread.asp?c=93&f=987&t=302104
artist2121
@ artist21 - Danke, ich werde meine Antwort in Kürze löschen.
Dassouki
3
Der von @ artist21 referenzierte Thread dokumentiert einen grundlegenden Benutzerfehler: Wenn Sie die Datenbank sortieren , wird die Verbindung zwischen ihr und den Funktionen zerstört. (OID ist ein vollständiger roter Hering; er wird in der Shapefile-Struktur nicht verwendet.) Vorausgesetzt, Sie fügen beim Bearbeiten der DBF-Datei keine Zeilen ein, löschen keine Zeilen oder ordnen keine Zeilen neu an, sind Sie in Ordnung. Erwägen Sie vor diesem Hintergrund, Ihre Antwort erneut zu öffnen.
whuber