在QGIS标签中格式化日期


9

我想显示一个日期字段作为标签。数据来自shapefile。有问题的字段是日期字段。

当我将日期字段用于标签时,它以yyyy / mm / dd格式显示。我想将其设置为dd / mm / yyyy格式。

这可能吗。我知道在MapInfo中我会使用FormatDate函数,我想知道QGIS中是否存在类似的东西。

Answers:


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控制台来执行此操作,我不认为使用时间/时间日期模块或仅使用通用str.replace或reg表达式都不会有太大的问题。我不熟悉api,所以我无能为力


1
在GIS程序外部编辑dbf并不是一个好主意,因为ObjectID字段不会保留到excel中。forums.esri.com/Thread.asp?c=93&f=987&t=302104
Artwork21年

@ artwork21-谢谢,我很快就会删除我的答案。
dassouki 2011年

3
@ artwork21引用的线程记录了一个基本的用户错误:对dbf进行排序时,将破坏它与功能之间的连接。(OID是一个完整的红色鲱鱼;在shapefile结构中不使用。)只要在编辑.dbf文件时不插入行,删除行或对行进行重新排序,就可以了。考虑到此,考虑重新打开您的答复。
Whuber
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.