Formatowanie dat w etykietach QGIS


9

Chciałbym wyświetlić pole daty jako etykietę. Dane pochodzą z pliku kształtu. To pole jest polem daty.

Kiedy używam pola daty dla etykiety, wyświetla się ona w formacie rrrr / mm / dd. Chciałbym uzyskać format dd / mm / rrrr.

Czy to możliwe. Wiem, że w MapInfo chciałbym użyć funkcji FormatDate, zastanawiałem się, czy coś podobnego istnieje w QGIS.

Odpowiedzi:


7

Aktualizacja: wyrażenia obsługują teraz na przykład formatowanie daty

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

Obecnie trwają prace związane z „etykietowaniem opartym na wyrażeniach”: http://hub.qgis.org/issues/3488 .

Na razie możesz użyć kalkulatora pola, aby przekonwertować ciąg datetime na inny format, np. RRRR / MM / DD na DD.MM.RRRR w następujący sposób:

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

Składnia podciągu jest następująca:

substr(string,startpos,length)

3

Jeśli możesz otworzyć plik shape.dbf w swoim ulubionym edytorze arkuszy kalkulacyjnych:

  • Utwórz nową kolumnę, nazwij ją temp_date.
  • Skopiuj stare dane daty i wstaw je do temp_date
  • Podziel tę kolumnę za pomocą text to datafunkcji według znaków \lub cokolwiek innego, co stanie się podziałem daty
  • Reorganizuj kolumny w żądanej kolejności
  • Utwórz nową kolumnę new_date
  • W new_date użyj następującej formuły =A1 & "/" & B1 & "/" & C1. Oczywiście musisz użyć odpowiednich pól, a nie tych, o których wspomniałem.

Oczywiście może istnieć domyślny sposób obsługi formatów daty przez QGis, ale nie widziałem tego. Być może pobaw się kalkulatorem pola, jeśli to w ogóle pomoże

Jestem pewien, że istnieje opcja zrobienia tego za pomocą konsoli Pythona qgis. Nie podejrzewam, że będzie to wielka sprawa, używając modułów daty / godziny lub po prostu ogólnego wyrażenia str.replace lub reg. Nie znam się na API, więc nie mogę nic na to poradzić


1
Edycja dbf poza programem GIS nie jest dobrym pomysłem, ponieważ pole ObjectID nie zostanie przeniesione do programu Excel. forums.esri.com/Thread.asp?c=93&f=987&t=302104
grafika 21

@ artwork21 - Dzięki, wkrótce usunę moją odpowiedź.
dassouki

3
Wątek, do którego odwołuje się @ artwork21, dokumentuje podstawowy błąd użytkownika: podczas sortowania pliku dbf niszczysz połączenie między nim a funkcjami. (OID to kompletny czerwony śledź; nie jest używany w strukturze pliku shapefile). Pod warunkiem, że nie wstawisz wierszy, nie usuniesz wierszy ani nie zmienisz ich kolejności podczas edycji pliku .dbf, wszystko będzie w porządku. Rozważ ponowne otwarcie odpowiedzi w świetle tego.
whuber
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.