QGISラベルの日付のフォーマット


9

日付フィールドをラベルとして表示したいのですが。データはシェープファイルからのものです。問題のフィールドは日付フィールドです。

ラベルに日付フィールドを使用すると、yyyy / mm / dd形式で表示されます。dd / mm / yyyy形式にしたいのですが。

これは可能ですか?MapInfoではFormatDate関数を使用することを知っているので、QGISに同様のものが存在するかどうか疑問に思いました。

回答:


7

更新:式で日付のフォーマットがサポートされるようになりました。

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

現在、「式ベースのラベル付け」に関連して進行中の作業があります:http : //hub.qgis.org/issues/3488

現時点では、フィールド計算機を使用して、日時文字列を別の形式に変換できます。たとえば、次のようにYYYY / MM / DDからDD.MM.YYYYに変換できます。

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

部分文字列の構文は次のとおりです。

substr(string,startpos,length)

3

お好みのスプレッドシートエディタでshape.dbfファイルを開くことができる場合:

  • 新しい列を作成し、それを呼び出しますtemp_date
  • 古い日付データをtemp_dateにコピーして貼り付けます
  • text to data機能を使用してその列を文字\または日付スプリッターとなるいずれかで分割します
  • 必要な順序で列を再編成する
  • 新しい列を作成する new_date
  • new_dateでは、次の式を使用します=A1 & "/" & B1 & "/" & C1。もちろん、私が述べたものではなく、適切なフィールドを使用する必要があります。

もちろん、QGisが日付フォーマットを処理するデフォルトの方法があるかもしれませんが、私はそれを見ていません。おそらく、それがまったく役立つ場合は、フィールド計算機で遊んでみてください

qgis pythonコンソールを使用してそれを行うオプションがあると確信しています。これがtime / time dateモジュールを使用するか、一般的なstr.replaceまたはreg式を使用するだけで大​​した問題になるとは思いません。私はAPIの詩ではないので、そこを助けることはできません


1
ObjectIDフィールドはExcelに引き継がれないため、GISプログラムの外部でdbfを編集することはお勧めできません。forums.esri.com/Thread.asp?c=93&f=987&t=302104
アートワーク21

@ artwork21-ありがとうございます。まもなく私の回答を削除します。
dassouki、2011

3
@ artwork21によって参照されるスレッドは、基本的なユーザーエラーを文書化します。dbfをソートすると、それと機能の間の接続が破壊されます。(OIDは完全な赤いニシンです。シェープファイル構造では使用されません。).dbfファイルの編集時に行の挿入、行の削除、または行の並べ替えを行わない限り、問題はありません。これを考慮して、返信を再開することを検討してください。
whuber
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.