Formatage des dates dans les étiquettes QGIS

9

Je souhaite afficher un champ de date sous forme d'étiquette. Les données proviennent d'un fichier de formes. Le champ en question est un champ de date.

Lorsque j'utilise le champ de date pour l'étiquette, il s'affiche au format aaaa / mm / jj. Je voudrais le faire au format jj / mm / aaaa.

Est-ce possible. Je sais que dans MapInfo j'utiliserais la fonction FormatDate, je me demandais si quelque chose de similaire existait dans QGIS.

James S
la source

Réponses:

7

Mise à jour: les expressions prennent désormais en charge le formatage de la date, par exemple

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

Actuellement, des travaux sont en cours concernant "l'étiquetage basé sur l'expression": http://hub.qgis.org/issues/3488 .

Pour l'instant, vous pouvez utiliser Field Calculator pour convertir votre chaîne datetime dans un format différent, par exemple AAAA / MM / JJ en JJ.MM.AAAA comme ceci:

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

La syntaxe de la sous-chaîne est:

substr(string,startpos,length)
obscur
la source
3

Si vous pouvez ouvrir le fichier shape.dbf dans votre éditeur de feuille de calcul préféré:

  • Créez une nouvelle colonne, appelez-la temp_date.
  • Copiez et patez les anciennes données de date dans temp_date
  • Fractionnez cette colonne à l'aide de la text to datafonction par caractère \ou selon votre diviseur de date
  • Réorganisez les colonnes dans l'ordre souhaité
  • Créer une nouvelle colonne new_date
  • Dans new_date, utilisez la formule suivante =A1 & "/" & B1 & "/" & C1. Bien sûr, vous devez utiliser les champs appropriés et non ceux que j'ai mentionnés.

Bien sûr, il pourrait y avoir un moyen par défaut pour QGis de gérer les formats de date, mais je ne l'ai pas vu. Peut-être jouez avec la calculatrice de terrain si cela vous aide

Je suis sûr qu'il y a une option pour le faire en utilisant la console qgis python, je ne pense pas que ce sera un gros problème soit en utilisant les modules date / heure ou juste une expression générique str.replace ou reg. Je ne suis pas en accord avec l'API donc je ne peux pas m'empêcher

dassouki
la source
1
Ce n'est pas une bonne idée d'éditer dbf en dehors d'un programme SIG car le champ ObjectID ne sera pas transféré dans Excel. forums.esri.com/Thread.asp?c=93&f=987&t=302104
artwork21
@ artwork21 - Merci, je vais supprimer ma réponse sous peu.
dassouki
3
Le thread référencé par @ artwork21 documente une erreur fondamentale de l'utilisateur: lorsque vous triez le dbf, vous détruisez la connexion entre celui-ci et les fonctionnalités. (OID est un hareng rouge complet; il n'est pas utilisé dans la structure du fichier de formes.) À condition de ne pas insérer de lignes, de supprimer des lignes ou de réorganiser des lignes lors de la modification du fichier .dbf, tout ira bien. Envisagez de rouvrir votre réponse à la lumière de cela.
whuber