Форматирование дат в метках QGIS

9

Я хотел бы отобразить поле даты в качестве метки. Данные из шейп-файла. Рассматриваемое поле является полем даты.

Когда я использую поле даты для метки, оно отображается в формате гггг / мм / дд. Я хотел бы получить его в формате дд / мм / гггг.

Это возможно. Я знаю, что в MapInfo я бы использовал функцию FormatDate, мне было интересно, существует ли что-то подобное в QGIS.

Джеймс С
источник

Ответы:

7

Обновление: выражения теперь поддерживают форматирование даты, например

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

В настоящее время ведется работа, связанная с «маркировкой на основе выражений»: http://hub.qgis.org/issues/3488 .

На данный момент вы можете использовать Калькулятор поля, чтобы преобразовать строку даты и времени в другой формат, например, ГГГГ / ММ / ДД в ДД.ММ.ГГГГ, например:

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 может существовать способ обработки форматов даты по умолчанию, но я этого не видел. Возможно, поиграйтесь с полевым калькулятором, если это вообще поможет

Я уверен, что есть возможность сделать это с помощью консоли Python qgis, я не подозреваю, что это будет иметь большое значение либо с использованием модулей даты / времени, либо просто с помощью общего выражения str.replace или reg. Я не стих с API, поэтому я не могу помочь там

dassouki
источник
1
Не стоит редактировать dbf вне ГИС-программы, потому что поле ObjectID не будет перенесено в Excel. forums.esri.com/Thread.asp?c=93&f=987&t=302104
artwork21
@ artwork21 - Спасибо, я скоро удалю свой ответ.
Дассуки
3
Поток, на который ссылается @ artwork21, документирует фундаментальную ошибку пользователя: когда вы сортируете dbf, вы разрушаете связь между ним и функциями. (OID - это полная красная сельдь; она не используется в структуре шейп-файла.) Если вы не вставляете строки, не удаляете или не переупорядочиваете строки при редактировании файла .dbf, все будет в порядке. Подумайте о повторном открытии вашего ответа в свете этого.
whuber